
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *
   gsym, uint r_type, bool is_32bit, Output_section * output_section) */

bool __thiscall
anon_unknown.dwarf_2330a8::Target_i386::Relocate::should_apply_static_reloc
          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,
          Output_section *output_section)

{
  bool bVar1;
  General_options *pGVar2;
  byte bVar3;
  bool bVar4;
  undefined7 in_register_00000009;
  byte bVar5;
  byte bVar6;
  byte bVar7;
  uint uVar8;
  int iVar9;
  bool is_global;
  bool is_global_1;
  
  if ((*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2) == 0) {
    return true;
  }
  uVar8 = (int)gsym - 1;
  bVar3 = 0;
  if (uVar8 < 0x2b) {
    bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_;
  }
  if (this == (Relocate *)0x0) {
    pGVar2 = gold::parameters->options_;
    if (pGVar2 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
      can_convert_mov_to_lea((Symbol *)0x0);
    }
    if (((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) {
      return true;
    }
    return (bool)(~bVar3 & 1 | (byte)r_type);
  }
  bVar4 = gold::parameters->doing_static_link_valid_;
  if (bVar4 == false) {
                    /* WARNING: Subroutine does not return */
    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);
  }
  if (gold::parameters->doing_static_link_ == false) {
    bVar5 = this[7].field_0x2 & 7;
    bVar7 = 0;
    if ((this[7].field_0x2 & 7) == 0) {
      iVar9 = *(int *)(this + 3);
      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;
      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;
LAB_00160320:
      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;
LAB_001604b0:
      bVar6 = 0;
      goto LAB_0016025b;
    }
    if (bVar5 == 4) {
LAB_00160229:
      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;
      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;
      if (bVar5 == 0) {
        iVar9 = *(int *)(this + 3);
        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;
        goto LAB_00160320;
      }
    }
    bVar6 = bVar7;
    if (bVar5 == 3) goto LAB_0016025b;
LAB_00160333:
    if ((bVar3 & 1) == 0) {
LAB_00160470:
      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {
        return bVar4;
      }
      if ((bVar3 & 0x10) == 0) {
        pGVar2 = gold::parameters->options_;
        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;
        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&
           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;
      }
      if (bVar5 == 0) {
        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;
        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&
           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {
LAB_001604f0:
          bVar6 = bVar7;
          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {
            pGVar2 = gold::parameters->options_;
            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;
            bVar1 = (pGVar2->shared_).value;
            bVar6 = bVar1;
            if ((bVar1 != false) &&
               ((bVar6 = gold::Version_script_info::get_symbol_version
                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,
                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))
               )) {
              pGVar2 = gold::parameters->options_;
              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;
              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;
              bVar6 = bVar1;
              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {
                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;
              }
            }
          }
        }
      }
      else {
        bVar6 = bVar4;
        if (bVar5 != 4) goto LAB_001604f0;
      }
      goto LAB_0016025b;
    }
    pGVar2 = gold::parameters->options_;
    if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;
    bVar6 = (pGVar2->shared_).value;
    if (((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))
    goto LAB_00160470;
  }
  else {
    bVar6 = 0;
LAB_0016025b:
    if ((bVar3 & 1) == 0) goto LAB_00160264;
  }
  bVar7 = bVar4;
  if (((bVar3 & 8) == 0) || (this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)) {
    if ((this[7].field_0x2 & 7) == 0) {
      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||
         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;
    }
    else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;
    if (((this[7].field_0x1 & 3) == 0) &&
       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)) {
      pGVar2 = gold::parameters->options_;
      if (pGVar2 == (General_options *)0x0) {
LAB_001605fc:
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
      }
      bVar7 = bVar4;
      if ((pGVar2->shared_).value != false) {
        bVar4 = gold::Version_script_info::get_symbol_version
                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0
                           ,&is_global_1);
        if ((bVar4) && (is_global_1 == false)) {
LAB_00160264:
          return (bool)(bVar6 ^ 1);
        }
        pGVar2 = gold::parameters->options_;
        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;
        bVar7 = (pGVar2->Bsymbolic_).value;
        if (((bool)bVar7 == false) &&
           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {
          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;
        }
      }
    }
  }
  return (bool)bVar7;
}



undefined8 *
FUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)

{
  char cVar1;
  long *plVar2;
  uint *puVar3;
  long *plVar4;
  long lVar5;
  byte bVar6;
  char cVar7;
  int iVar8;
  int iVar9;
  undefined8 *puVar10;
  int *piVar11;
  undefined8 *puVar12;
  undefined8 *puVar13;
  undefined8 uVar14;
  long lVar15;
  byte bVar16;
  ulong uVar17;
  byte bVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined8 *extraout_RDX;
  ulong uVar21;
  long lVar22;
  long unaff_RBX;
  int *piVar23;
  uint *unaff_RBP;
  ulong uVar24;
  long *plVar25;
  long *plVar26;
  ulong uVar27;
  uint uVar28;
  undefined8 *unaff_R12;
  uint uVar29;
  int iVar30;
  int iVar31;
  undefined6 uStack_30;
  char local_2a;
  char local_29;
  
  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {
    return (undefined8 *)0x1;
  }
  uVar24 = (ulong)(param_2 - 1U);
  uVar28 = 0;
  if (param_2 - 1U < 0x2b) {
    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];
  }
  if (param_1 == (undefined8 *)0x0) {
    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
    if (lVar15 != 0) {
      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {
        return (undefined8 *)0x1;
      }
      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);
    }
    FUN_0015d950();
    goto LAB_001605fc;
  }
  bVar6 = PTR_DAT_003f85c0[0x20];
  puVar12 = (undefined8 *)(ulong)bVar6;
  if (bVar6 == 0) {
    FUN_0015d840();
    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));
    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);
    plVar2 = *(long **)(uVar24 + 0x10);
    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {
      iVar9 = *(int *)(unaff_RBX + 0x10);
    }
    else {
      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/object.h",0x6ab,"value");
      }
      puVar3 = *(uint **)(unaff_RBX + 0x10);
      uVar27 = (ulong)*puVar3;
      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);
      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);
      if (plVar26 != (long *)0x0) {
        uVar17 = ((long *)*plVar26)[1];
        plVar4 = (long *)*plVar26;
        while (plVar25 = plVar4, uVar27 != uVar17) {
          plVar4 = (long *)*plVar25;
          if ((plVar4 == (long *)0x0) ||
             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))
          goto LAB_00160b90;
        }
        if (*plVar26 != 0) {
          iVar9 = *(int *)(*plVar26 + 0x10);
          goto LAB_0016070c;
        }
      }
LAB_00160b90:
      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);
    }
LAB_0016070c:
    if (lVar15 == 0) {
      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;
      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;
    }
    else {
      bVar6 = FUN_0024abb0(lVar15);
    }
    iVar30 = (int)param_6;
    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);
    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);
    if (0x19 < iVar30 - 0xfU) {
      return puVar10;
    }
    puVar13 = (undefined8 *)
              ((long)&switchD_00160746::switchdataD_00338da4 +
              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);
    switch(puVar10) {
    case (undefined8 *)0x0:
    case (undefined8 *)0x1:
    case (undefined8 *)0x12:
      if (iVar8 != 2) {
        if (iVar8 != 0) {
LAB_00160e10:
          uVar14 = gettext("unsupported reloc %u");
          param_6 = param_6 & 0xffffffff;
          uVar20 = *(undefined4 *)*param_5;
LAB_00160c4c:
          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);
          return puVar12;
        }
        iVar9 = (iVar30 == 0x21) + 1;
        if (lVar15 != 0) {
          piVar23 = (int *)(lVar15 + 0x28);
          piVar11 = piVar23;
          do {
            if (*piVar11 == iVar9) {
              if (piVar11[1] != -1) goto LAB_00160fd0;
              break;
            }
            piVar11 = *(int **)(piVar11 + 2);
          } while (piVar11 != (int *)0x0);
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");
        }
        uVar28 = *(uint *)(*param_5 + 4) >> 8;
        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);
        if (cVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");
        }
        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);
LAB_00160d4e:
        if (iVar30 == 0xf) {
          lVar15 = extraout_RDX[6];
          if (lVar15 == 0) {
LAB_00161ee6:
            FUN_0015d780();
LAB_00161eeb:
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");
          }
          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/output.h",0xc5,"address");
          }
          iVar9 = iVar9 + *(int *)(lVar15 + 8);
        }
LAB_00160a52:
        lVar15 = extraout_RDX[4];
        if (lVar15 != 0) {
          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {
            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);
            *unaff_RBP = uVar28;
            return (undefined8 *)(ulong)uVar28;
          }
LAB_00161e9e:
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/output.h",0xcf,"data_size");
        }
LAB_00161eb6:
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0x206,"got_size");
      }
      if (puVar12 == (undefined8 *)0x0) {
        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
          return *(undefined8 **)PTR_DAT_003f85c0;
        }
        puVar12 = (undefined8 *)FUN_00169320(lVar15);
        if ((char)puVar12 != '\0') {
          return puVar12;
        }
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");
      }
      piVar11 = (int *)*param_5;
      iVar8 = *piVar11;
      if (iVar30 == 0xf) {
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          iVar8 = *(int *)*param_5;
        }
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
        bVar6 = *(byte *)((long)unaff_RBP + -1);
        if (bVar6 == 0xa1) {
          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;
        }
        else {
          iVar8 = *(int *)*param_5;
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            iVar8 = *(int *)*param_5;
          }
          if (*(char *)((long)unaff_RBP + -2) == -0x75) {
            if ((bVar6 & 199) != 5) {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            }
            *(undefined1 *)((long)unaff_RBP + -2) = 199;
          }
          else {
            if (*(char *)((long)unaff_RBP + -2) != '\x03') {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
              goto LAB_00161683;
            }
            if ((bVar6 & 199) != 5) {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            }
            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;
          }
          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;
        }
LAB_00161683:
        iVar8 = *(int *)(puVar12 + 0x59);
LAB_0016168e:
        uVar28 = iVar9 - iVar8;
      }
      else {
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          piVar11 = (int *)*param_5;
        }
        iVar8 = *piVar11;
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
        bVar6 = *(byte *)((long)unaff_RBP + -1);
        cVar7 = *(char *)((long)unaff_RBP + -2);
        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        bVar6 = (byte)((int)(uint)bVar6 >> 3);
        if (cVar7 == -0x75) {
          *(undefined1 *)((long)unaff_RBP + -2) = 199;
LAB_00160edd:
          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;
        }
        else if (cVar7 == '+') {
          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;
          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;
        }
        else {
          if (cVar7 == '\x03') {
            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;
            goto LAB_00160edd;
          }
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        iVar8 = (int)puVar12[0x59];
        uVar28 = iVar8 - iVar9;
        if (iVar30 == 0x10) goto LAB_0016168e;
      }
      *unaff_RBP = *unaff_RBP + uVar28;
      puVar13 = (undefined8 *)(ulong)uVar28;
      break;
    case (undefined8 *)0x2:
      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);
      if (puVar13 == (undefined8 *)0x0) {
LAB_00161e86:
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/parameters.h",0x5c,"options");
      }
      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {
        if (puVar12 == (undefined8 *)0x0) {
          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;
          if ((*(int *)(puVar13 + 6) < 1) &&
             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");
          }
        }
        else {
          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);
          puVar13 = puVar12;
        }
      }
      break;
    case (undefined8 *)0x3:
      if (iVar8 != 2) {
        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);
        if (lVar15 != 0) {
          piVar23 = (int *)(lVar15 + 0x28);
          piVar11 = piVar23;
          do {
            if (*piVar11 == iVar9) {
              if (piVar11[1] != -1) goto LAB_00160bc0;
              break;
            }
            piVar11 = *(int **)(piVar11 + 2);
          } while (piVar11 != (int *)0x0);
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");
        }
        uVar28 = *(uint *)(*param_5 + 4) >> 8;
        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);
        if (cVar7 == '\0') goto LAB_00161eeb;
        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);
        puVar13 = (undefined8 *)(ulong)uVar28;
LAB_00160c17:
        if (iVar8 != 3) {
          if (iVar8 != 0) {
            uVar14 = gettext("unsupported reloc %u");
            param_6 = 0x12;
            uVar20 = *(undefined4 *)*param_5;
            goto LAB_00160c4c;
          }
          goto LAB_00160c26;
        }
        iVar9 = *(int *)*param_5;
        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
          iVar9 = *(int *)*param_5;
        }
        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
          iVar9 = *(int *)*param_5;
        }
        cVar7 = (char)unaff_RBP[1];
        cVar1 = *(char *)((long)unaff_RBP + -2);
        bVar6 = *(byte *)((long)unaff_RBP + -1);
        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {
          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;
LAB_00161589:
          if (cVar1 == '\x04') {
            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {
              uVar14 = gettext("TLS relocation out of range");
              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
              iVar9 = *(int *)*param_5;
            }
            if (*(char *)((long)unaff_RBP + -3) != -0x73) {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
            }
            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {
              lVar15 = -3;
              lVar22 = 5;
            }
            else {
              uVar20 = *(undefined4 *)*param_5;
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
              lVar15 = -3;
              lVar22 = 5;
            }
            goto LAB_00161451;
          }
        }
        else {
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
          iVar9 = *(int *)*param_5;
          if (cVar7 != -0x18 && cVar7 != -1) {
LAB_0016198c:
            uVar14 = gettext("TLS relocation against invalid instruction");
            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
            iVar9 = *(int *)*param_5;
            goto LAB_00161589;
          }
        }
        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        }
        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&
           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||
            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {
          lVar15 = -2;
          lVar22 = 6;
        }
        else {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          lVar15 = -2;
          lVar22 = 6;
        }
LAB_00161451:
        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;
        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;
        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;
        *(undefined1 *)param_1 = 1;
        return param_1;
      }
      if (puVar12 == (undefined8 *)0x0) {
        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
          return *(undefined8 **)PTR_DAT_003f85c0;
        }
        puVar12 = (undefined8 *)FUN_00169320(lVar15);
        if ((char)puVar12 != '\0') {
          return puVar12;
        }
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");
      }
      iVar8 = *(int *)*param_5;
      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        iVar8 = *(int *)*param_5;
      }
      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        iVar8 = *(int *)*param_5;
      }
      cVar7 = (char)unaff_RBP[1];
      cVar1 = *(char *)((long)unaff_RBP + -2);
      bVar6 = *(byte *)((long)unaff_RBP + -1);
      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {
        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;
LAB_001614c8:
        if (cVar1 != '\x04') goto LAB_001607f1;
        iVar8 = *(int *)*param_5;
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          iVar8 = *(int *)*param_5;
        }
        if (*(char *)((long)unaff_RBP + -3) != -0x73) {
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        lVar15 = 5;
        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;
        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;
      }
      else {
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        if (cVar7 != -1 && cVar7 != -0x18) {
          iVar8 = *(int *)*param_5;
LAB_00161759:
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          goto LAB_001614c8;
        }
LAB_001607f1:
        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {
          if (cVar7 != -0x18) {
            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;
            goto LAB_00160829;
          }
LAB_00160833:
          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||
             (*(char *)((long)unaff_RBP + 9) != -0x70)) {
            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;
            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;
            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;
            lVar15 = 5;
            goto LAB_0016087d;
          }
        }
        else {
LAB_001607ff:
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
LAB_00160829:
          if (cVar7 != -1) goto LAB_00160833;
        }
        lVar15 = 6;
        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;
        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;
      }
LAB_0016087d:
      *(int *)((long)unaff_RBP + lVar15) =
           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);
      *(undefined1 *)param_1 = 1;
      puVar13 = param_1;
      break;
    case (undefined8 *)0x4:
      if (*(int *)((long)param_1 + 4) == 1) {
        uVar14 = gettext("both SUN and GNU model TLS relocations");
        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);
        return puVar12;
      }
      *(undefined4 *)((long)param_1 + 4) = 2;
      if (iVar8 != 2) {
        if (iVar8 != 0) {
          uVar14 = gettext("unsupported reloc %u");
          param_6 = 0x13;
          uVar20 = *(undefined4 *)*param_5;
          goto LAB_00160c4c;
        }
        iVar9 = *(int *)(extraout_RDX + 0x12);
        if (iVar9 == -1) {
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");
        }
        goto LAB_00160a52;
      }
      if (puVar12 == (undefined8 *)0x0) {
        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
          return *(undefined8 **)PTR_DAT_003f85c0;
        }
        puVar12 = (undefined8 *)FUN_00169320(lVar15);
        if ((char)puVar12 != '\0') {
          return puVar12;
        }
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");
      }
      piVar11 = (int *)*param_5;
      iVar9 = *piVar11;
      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        piVar11 = (int *)*param_5;
      }
      cVar7 = (char)unaff_RBP[1];
      bVar6 = *(byte *)((long)unaff_RBP + -1);
      cVar1 = *(char *)((long)unaff_RBP + -2);
      iVar9 = *piVar11;
      if ((cVar7 == -0x18) || (cVar7 == -1)) {
        iVar8 = (cVar7 != -0x18) + 9;
      }
      else {
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        iVar9 = *(int *)*param_5;
        iVar8 = 10;
      }
      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        iVar9 = *(int *)*param_5;
      }
      if (cVar1 != -0x73) {
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
      }
      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {
        if (cVar7 != -0x18) {
          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {
            uVar20 = *(undefined4 *)*param_5;
            uVar14 = gettext("TLS relocation against invalid instruction");
            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          }
          goto LAB_001610d7;
        }
LAB_00161808:
        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;
        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;
        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;
      }
      else {
        uVar20 = *(undefined4 *)*param_5;
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        if (cVar7 == -0x18) goto LAB_00161808;
LAB_001610d7:
        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;
        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;
      }
      *(undefined1 *)param_1 = 1;
      puVar13 = param_1;
      break;
    case (undefined8 *)0x11:
      puVar10 = (undefined8 *)
                ((long)&switchD_00160746::switchdataD_00338da4 +
                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);
      if ((iVar8 == 2) &&
         (puVar10 = *(undefined8 **)(uVar24 + 0x38),
         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {
        if (puVar12 == (undefined8 *)0x0) {
          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
            return *(undefined8 **)PTR_DAT_003f85c0;
          }
          puVar12 = (undefined8 *)FUN_00169320(lVar15);
          if ((char)puVar12 != '\0') {
            return puVar12;
          }
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");
        }
        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);
        puVar10 = puVar12;
      }
      *unaff_RBP = *unaff_RBP + iVar9;
      return puVar10;
    case (undefined8 *)0x13:
      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);
      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;
      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {
        if (puVar12 == (undefined8 *)0x0) {
          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);
          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&
             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");
          }
        }
        else {
          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;
          *unaff_RBP = uVar28;
          puVar13 = (undefined8 *)(ulong)uVar28;
        }
      }
      break;
    case (undefined8 *)0x18:
    case (undefined8 *)0x19:
      *(undefined4 *)((long)param_1 + 4) = 2;
      if (iVar8 == 2) {
        if (puVar12 == (undefined8 *)0x0) {
          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
            return *(undefined8 **)PTR_DAT_003f85c0;
          }
          puVar12 = (undefined8 *)FUN_00169320(lVar15);
          if ((char)puVar12 != '\0') {
            return puVar12;
          }
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");
        }
        iVar8 = *(int *)*param_5;
        if (iVar30 == 0x27) {
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            iVar8 = *(int *)*param_5;
          }
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          }
          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||
             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {
            uVar20 = *(undefined4 *)*param_5;
            uVar14 = gettext("TLS relocation against invalid instruction");
            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          }
          *(undefined1 *)((long)unaff_RBP + -1) = 5;
          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);
          return puVar12;
        }
        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);
        if (unaff_R12 < puVar13) {
          uVar14 = gettext("TLS relocation out of range");
LAB_00161333:
          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
LAB_00160f46:
        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        *(undefined2 *)unaff_RBP = 0x9066;
      }
      else {
        if (iVar8 == 3) {
          iVar31 = 1;
          iVar9 = 0;
        }
        else if ((iVar30 == 0x27) && (iVar8 == 0)) {
          lVar22 = extraout_RDX[4];
          if (lVar22 == 0) goto LAB_00161eb6;
          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;
          lVar5 = extraout_RDX[6];
          if (lVar5 == 0) goto LAB_00161ee6;
          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;
          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);
          iVar31 = 4;
        }
        else {
          iVar31 = 4;
          iVar9 = 0;
        }
        if (lVar15 != 0) {
          piVar23 = (int *)(lVar15 + 0x28);
          piVar11 = piVar23;
          do {
            if (*piVar11 == iVar31) {
              if (piVar11[1] != -1) goto LAB_00160da0;
              break;
            }
            piVar11 = *(int **)(piVar11 + 2);
          } while (piVar11 != (int *)0x0);
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");
        }
        uVar28 = *(uint *)(*param_5 + 4) >> 8;
        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);
        if (cVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");
        }
        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));
        iVar31 = (int)puVar13;
LAB_00160de8:
        uVar28 = iVar9 + iVar31;
        if (iVar8 == 3) {
          iVar8 = *(int *)*param_5;
          if (iVar30 != 0x27) {
            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);
            if (unaff_R12 < puVar13) {
              uVar14 = gettext("TLS relocation out of range");
              goto LAB_00161333;
            }
            goto LAB_00160f46;
          }
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            iVar8 = *(int *)*param_5;
          }
          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);
          if (unaff_R12 < puVar13) {
            uVar14 = gettext("TLS relocation out of range");
            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          }
          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||
             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {
            uVar20 = *(undefined4 *)*param_5;
            uVar14 = gettext("TLS relocation against invalid instruction");
            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          }
          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;
        }
        else {
          if (iVar8 != 0) goto LAB_00160e10;
          if (iVar30 != 0x27) {
            return puVar13;
          }
        }
LAB_00160c26:
        *unaff_RBP = *unaff_RBP + uVar28;
      }
    }
    return puVar13;
  }
  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];
  if (PTR_DAT_003f85c0[0x21] == 0) {
    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;
    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {
      iVar9 = *(int *)(param_1 + 3);
      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;
      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;
LAB_00160320:
      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;
LAB_001604b0:
      uVar19 = 0;
      goto LAB_0016025b;
    }
    if (bVar18 == 4) {
LAB_00160229:
      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;
      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;
      if (bVar18 == 0) {
        iVar9 = *(int *)(param_1 + 3);
        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;
        goto LAB_00160320;
      }
    }
    uVar19 = uVar29;
    if (bVar18 == 3) goto LAB_0016025b;
LAB_00160333:
    if ((uVar28 & 1) == 0) {
LAB_00160470:
      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {
        return puVar12;
      }
      if ((uVar28 & 0x10) == 0) {
        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
        if (lVar15 == 0) goto LAB_001605fc;
        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&
           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;
      }
      if (bVar18 == 0) {
        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;
        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&
           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,
           uVar19 = (uint)bVar6, bVar6 == 0)) {
LAB_001604f0:
          uVar19 = uVar29;
          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&
             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {
            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
            if (lVar15 == 0) goto LAB_001605fc;
            bVar6 = *(byte *)(lVar15 + 0x2a61);
            uVar19 = (uint)bVar6;
            if ((bVar6 != 0) &&
               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'
                || (local_2a != '\0')))) {
              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
              if (lVar15 == 0) goto LAB_001605fc;
              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;
              uVar19 = (uint)bVar6;
              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {
                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;
              }
            }
          }
        }
      }
      else {
        if (bVar18 != 4) goto LAB_001604f0;
        uVar19 = (uint)bVar6;
      }
      goto LAB_0016025b;
    }
    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
    if (lVar15 == 0) goto LAB_001605fc;
    if (*(byte *)(lVar15 + 0x2a61) == 0) {
      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;
      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);
    }
    else {
      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);
    }
  }
  else {
    uVar19 = 0;
LAB_0016025b:
    if ((uVar28 & 1) == 0) goto LAB_00160264;
  }
  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {
    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {
      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||
         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))
      goto LAB_00160264;
    }
    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;
    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {
      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;
      if ((bVar6 & 1) == 0) {
        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
        if (lVar15 == 0) {
LAB_001605fc:
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/parameters.h",0x5c,"options");
        }
        if (*(char *)(lVar15 + 0x2a61) != '\0') {
          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);
          if ((cVar7 != '\0') && (local_29 == '\0')) {
LAB_00160264:
            return (undefined8 *)(ulong)(uVar19 ^ 1);
          }
          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
          if (lVar15 == 0) goto LAB_001605fc;
          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);
          if (*(byte *)(lVar15 + 0xd21) == 0) {
            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);
            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {
              puVar12 = (undefined8 *)
                        (ulong)CONCAT31((int3)(uVar19 >> 8),
                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));
            }
          }
        }
      }
      else {
        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);
      }
    }
  }
  return puVar12;
  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {
LAB_00160da0:
    if (*piVar23 == iVar31) {
      if (piVar23[1] != 0xffffffff) {
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));
        iVar31 = (int)puVar13;
        goto LAB_00160de8;
      }
      break;
    }
  }
  goto LAB_00160bce;
  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {
LAB_00160bc0:
    if (iVar9 == *piVar23) {
      if (piVar23[1] != -1) {
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);
        puVar13 = extraout_RDX;
        goto LAB_00160c17;
      }
      break;
    }
  }
  goto LAB_00160bce;
  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {
LAB_00160fd0:
    if (iVar9 == *piVar23) {
      iVar9 = piVar23[1];
      if (iVar9 != -1) goto LAB_00160d4e;
      break;
    }
  }
LAB_00160bce:
                    /* WARNING: Subroutine does not return */
  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x10
TEST byte ptr [RCX + 0x70],0x2
JZ 0x001602d0
SUB ESI,0x1
XOR R12D,R12D
CMP ESI,0x2a
JBE 0x00160280
MOV RBX,RDI
MOV RAX,qword ptr [0x003f85c0]
TEST RDI,RDI
JZ 0x0016029f
MOVZX EBP,byte ptr [RAX + 0x20]
TEST BPL,BPL
JZ 0x00160614
MOVZX R13D,byte ptr [RAX + 0x21]
TEST R13B,R13B
JNZ 0x00160458
MOVZX EDX,byte ptr [RDI + 0x3a]
AND EDX,0x7
JZ 0x00160300
CMP DL,0x4
JNZ 0x00160588
MOV RCX,qword ptr [RAX + 0x10]
TEST RCX,RCX
JZ 0x001605fc
MOV R14D,R12D
AND R14D,0x1
CMP byte ptr [RCX + 0x2a61],0x0
JZ 0x001604b0
TEST DL,DL
JZ 0x001605a0
CMP DL,0x3
JNZ 0x00160333
TEST R14D,R14D
JNZ 0x00160370
MOV EBP,R13D
ADD RSP,0x10
XOR EBP,0x1
POP RBX
MOV EAX,EBP
POP RBP
POP R12
POP R13
POP R14
RET
LEA RAX,[0x339ec0]
MOV RBX,RDI
MOVSX R12D,byte ptr [RAX + RSI*0x1]
MOV RAX,qword ptr [0x003f85c0]
TEST RDI,RDI
JNZ 0x001601f8
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001605f7
CMP byte ptr [RAX + 0x2a61],0x0
JZ 0x001602e8
MOV EBP,R12D
NOT EBP
AND EBP,0x1
OR EBP,EDX
ADD RSP,0x10
MOV EAX,EBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
ADD RSP,0x10
MOV EBP,0x1
POP RBX
MOV EAX,EBP
POP RBP
POP R12
POP R13
POP R14
RET
CMP byte ptr [RAX + 0x42d1],0x0
MOV EBP,0x1
JZ 0x001602bf
JMP 0x001602b5
MOVZX ECX,byte ptr [RDI + 0x3b]
MOV ESI,dword ptr [RDI + 0x18]
SHR CL,0x5
AND ECX,0x1
TEST ESI,ESI
JNZ 0x00160319
TEST CL,CL
JNZ 0x00160229
MOV R14D,R12D
AND R14D,0x1
CMP ESI,0xfff1
SETNZ SIL
OR SIL,CL
JZ 0x001604b0
TEST R14D,R14D
JZ 0x00160470
MOV RCX,qword ptr [RAX + 0x10]
TEST RCX,RCX
JZ 0x001605fc
MOVZX ESI,byte ptr [RCX + 0x2a61]
TEST SIL,SIL
JNZ 0x00160560
MOVZX ECX,byte ptr [RCX + 0x42d1]
TEST CL,CL
JZ 0x00160470
MOV R13D,ECX
NOP dword ptr [RAX + RAX*0x1]
AND R12D,0x8
JZ 0x00160380
CMP dword ptr [RBX + 0x24],-0x1
JNZ 0x001602bf
MOVZX EAX,byte ptr [RBX + 0x3a]
AND EAX,0x7
JNZ 0x00160550
MOV RAX,qword ptr [RBX + 0x10]
TEST byte ptr [RAX + 0x3c],0x1
JNZ 0x00160264
MOV EAX,dword ptr [RBX + 0x18]
TEST EAX,EAX
JNZ 0x001603ac
TEST byte ptr [RBX + 0x3b],0x20
JNZ 0x00160264
TEST byte ptr [RBX + 0x39],0x3
JNZ 0x001602bf
MOVZX EAX,byte ptr [RBX + 0x3b]
SHR AL,0x4
AND EAX,0x1
JNZ 0x001605b2
MOV RAX,qword ptr [0x003f85c0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001605fc
CMP byte ptr [RAX + 0x2a61],0x0
JZ 0x001602bf
MOV RSI,qword ptr [RBX]
XOR EDX,EDX
LEA RCX,[RSP + 0xf]
LEA RDI,[RAX + 0x9120]
CALL 0x00241de0
TEST AL,AL
JZ 0x0016040c
CMP byte ptr [RSP + 0xf],0x0
JZ 0x00160264
MOV RAX,qword ptr [0x003f85c0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001605fc
MOVZX EBP,byte ptr [RAX + 0xd21]
TEST BPL,BPL
JNZ 0x001602bf
MOVZX EDX,byte ptr [RBX + 0x38]
MOV EBP,R13D
XOR EBP,0x1
AND EDX,0xf
CMP DL,0x1
JZ 0x001602bf
OR BPL,byte ptr [RAX + 0xde9]
JMP 0x001602bf
MOV R14D,R12D
XOR R13D,R13D
AND R14D,0x1
JMP 0x0016025b
TEST R12B,0x8
JZ 0x00160480
CMP dword ptr [RBX + 0x24],-0x1
JNZ 0x001602bf
TEST R12B,0x10
JNZ 0x001604c0
MOV RCX,qword ptr [RAX + 0x10]
TEST RCX,RCX
JZ 0x001605fc
CMP byte ptr [RCX + 0x2a61],0x0
JNZ 0x001604c0
CMP byte ptr [RCX + 0x42d1],0x0
JNZ 0x001604c0
CMP dword ptr [RBX + 0x24],-0x1
JZ 0x001604c0
NOP dword ptr [RAX + RAX*0x1]
XOR R13D,R13D
JMP 0x0016025b
TEST DL,DL
JNZ 0x00160570
MOV RDX,qword ptr [RBX + 0x10]
MOVZX EDX,byte ptr [RDX + 0x3c]
AND EDX,0x1
JNZ 0x00160598
MOV EDX,dword ptr [RBX + 0x18]
TEST EDX,EDX
MOVZX EDX,byte ptr [RBX + 0x3b]
SETZ CL
SHR DL,0x5
AND DL,CL
JNZ 0x00160598
TEST byte ptr [RBX + 0x39],0x3
JNZ 0x0016025b
TEST byte ptr [RBX + 0x3b],0x10
JNZ 0x0016025b
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001605fc
MOVZX R13D,byte ptr [RAX + 0x2a61]
TEST R13B,R13B
JZ 0x0016025b
MOV RSI,qword ptr [RBX]
XOR EDX,EDX
LEA RCX,[RSP + 0xe]
LEA RDI,[RAX + 0x9120]
CALL 0x00241de0
TEST AL,AL
JZ 0x001605b9
CMP byte ptr [RSP + 0xe],0x0
JNZ 0x001605b9
MOV R13D,EAX
JMP 0x0016025b
CMP AL,0x4
JZ 0x00160264
JMP 0x001603ac
MOV R13D,ESI
JMP 0x00160370
CMP DL,0x4
JNZ 0x001604f0
MOV R13D,EBP
JMP 0x0016025b
MOV R14D,R12D
AND R14D,0x1
JMP 0x00160252
MOV R13D,EDX
JMP 0x0016025b
MOVZX ECX,byte ptr [RBX + 0x3b]
MOV ESI,dword ptr [RBX + 0x18]
SHR CL,0x5
AND ECX,0x1
JMP 0x00160320
MOV EBP,EAX
JMP 0x001602bf
MOV RAX,qword ptr [0x003f85c0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001605fc
CMP byte ptr [RAX + 0xd21],0x0
JNZ 0x001604b0
MOVZX EDX,byte ptr [RBX + 0x38]
AND EDX,0xf
CMP DL,0x1
JZ 0x0016025b
MOVZX R13D,byte ptr [RAX + 0xde9]
XOR R13D,0x1
JMP 0x0016025b
CALL 0x0015d950
LEA RDX,[0x33a5f8]
MOV ESI,0x5c
LEA RDI,[0x333279]
CALL 0x00199900
CALL 0x0015d840
NOP
NOP word ptr [RAX + RAX*0x1]
(translation_unit "undefined8 *\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)\n\n{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}\n\n" (function_definition "undefined8 *\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)\n\n{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}" type_identifier (pointer_declarator "*\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" * (function_declarator "FUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" identifier (parameter_list "(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "ulong param_6" type_identifier identifier) )))) (compound_statement "{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined8 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined8 *extraout_RDX;" type_identifier (pointer_declarator "*extraout_RDX" * identifier) ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "long lVar22;" (sized_type_specifier "long" long) identifier ;) (declaration "long unaff_RBX;" (sized_type_specifier "long" long) identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "uint *unaff_RBP;" type_identifier (pointer_declarator "*unaff_RBP" * identifier) ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "long *plVar25;" (sized_type_specifier "long" long) (pointer_declarator "*plVar25" * identifier) ;) (declaration "long *plVar26;" (sized_type_specifier "long" long) (pointer_declarator "*plVar26" * identifier) ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "undefined8 *unaff_R12;" type_identifier (pointer_declarator "*unaff_R12" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined6 uStack_30;" type_identifier identifier ;) (declaration "char local_2a;" primitive_type identifier ;) (declaration "char local_29;" primitive_type identifier ;) (if_statement "if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }" if (parenthesized_expression "((*(byte *)(param_4 + 0x70) & 2) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0x70) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x70) & 2)" ( (binary_expression "*(byte *)(param_4 + 0x70) & 2" (pointer_expression "*(byte *)(param_4 + 0x70)" * (cast_expression "(byte *)(param_4 + 0x70)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x70)" ( (binary_expression "param_4 + 0x70" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return (undefined8 *)0x1;\n  }" { (return_statement "return (undefined8 *)0x1;" return (cast_expression "(undefined8 *)0x1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar24 = (ulong)(param_2 - 1U);" (assignment_expression "uVar24 = (ulong)(param_2 - 1U)" identifier = (call_expression "(ulong)(param_2 - 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2 - 1U)" ( (binary_expression "param_2 - 1U" identifier - number_literal) )))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (if_statement "if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }" if (parenthesized_expression "(param_2 - 1U < 0x2b)" ( (binary_expression "param_2 - 1U < 0x2b" (binary_expression "param_2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }" { (expression_statement "uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];" (assignment_expression "uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24]" identifier = (subscript_expression "(uint)(char)(&DAT_00339ec0)[uVar24]" (call_expression "(uint)(char)(&DAT_00339ec0)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&DAT_00339ec0)" ( (pointer_expression "&DAT_00339ec0" & identifier) ))) [ identifier ])) ;) })) (if_statement "if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }" if (parenthesized_expression "(param_1 == (undefined8 *)0x0)" ( (binary_expression "param_1 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }" { (if_statement "if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }" if (parenthesized_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0'))" ( (binary_expression "(*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')" (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2a61) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" * (cast_expression "(char *)(lVar15 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(lVar15 + 0x42d1) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x42d1) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x42d1)" * (cast_expression "(char *)(lVar15 + 0x42d1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        return (undefined8 *)0x1;\n      }" { (return_statement "return (undefined8 *)0x1;" return (cast_expression "(undefined8 *)0x1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (return_statement "return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);" return (cast_expression "(undefined8 *)(ulong)(~uVar28 & 1 | param_3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(~uVar28 & 1 | param_3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(~uVar28 & 1 | param_3)" ( (binary_expression "~uVar28 & 1 | param_3" (binary_expression "~uVar28 & 1" (unary_expression "~uVar28" ~ identifier) & number_literal) | identifier) )))) ;) })) (expression_statement "FUN_0015d950();" (call_expression "FUN_0015d950()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;) })) (expression_statement "bVar6 = PTR_DAT_003f85c0[0x20];" (assignment_expression "bVar6 = PTR_DAT_003f85c0[0x20]" identifier = (subscript_expression "PTR_DAT_003f85c0[0x20]" identifier [ number_literal ])) ;) (expression_statement "puVar12 = (undefined8 *)(ulong)bVar6;" (assignment_expression "puVar12 = (undefined8 *)(ulong)bVar6" identifier = (cast_expression "(undefined8 *)(ulong)bVar6" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar6" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }" { (expression_statement "FUN_0015d840();" (call_expression "FUN_0015d840()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));" (assignment_expression "lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30))" identifier = (call_expression "CONCAT17(local_29,CONCAT16(local_2a,uStack_30))" identifier (argument_list "(local_29,CONCAT16(local_2a,uStack_30))" ( identifier , (call_expression "CONCAT16(local_2a,uStack_30)" identifier (argument_list "(local_2a,uStack_30)" ( identifier , identifier ))) )))) ;) (expression_statement "puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);" (assignment_expression "puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" * (cast_expression "(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(uVar24 + 8) + 0x2b0)" ( (binary_expression "*(long *)(uVar24 + 8) + 0x2b0" (pointer_expression "*(long *)(uVar24 + 8)" * (cast_expression "(long *)(uVar24 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar24 + 8)" ( (binary_expression "uVar24 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "plVar2 = *(long **)(uVar24 + 0x10);" (assignment_expression "plVar2 = *(long **)(uVar24 + 0x10)" identifier = (pointer_expression "*(long **)(uVar24 + 0x10)" * (cast_expression "(long **)(uVar24 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar24 + 0x10)" ( (binary_expression "uVar24 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" if (parenthesized_expression "((char)*(byte *)(unaff_RBX + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)(unaff_RBX + 0xb) < '\0'" (cast_expression "(char)*(byte *)(unaff_RBX + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(unaff_RBX + 0xb)" * (cast_expression "(byte *)(unaff_RBX + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0xb)" ( (binary_expression "unaff_RBX + 0xb" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }" { (expression_statement "iVar9 = *(int *)(unaff_RBX + 0x10);" (assignment_expression "iVar9 = *(int *)(unaff_RBX + 0x10)" identifier = (pointer_expression "*(int *)(unaff_RBX + 0x10)" * (cast_expression "(int *)(unaff_RBX + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x10)" ( (binary_expression "unaff_RBX + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" else (compound_statement "{\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" { (if_statement "if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }" if (parenthesized_expression "((*(byte *)(unaff_RBX + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(unaff_RBX + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(unaff_RBX + 0xb) & 8)" ( (binary_expression "*(byte *)(unaff_RBX + 0xb) & 8" (pointer_expression "*(byte *)(unaff_RBX + 0xb)" * (cast_expression "(byte *)(unaff_RBX + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0xb)" ( (binary_expression "unaff_RBX + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }" { comment (expression_statement "FUN_00199900("../../gold/object.h",0x6ab,"value");" (call_expression "FUN_00199900("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ;) })) (expression_statement "puVar3 = *(uint **)(unaff_RBX + 0x10);" (assignment_expression "puVar3 = *(uint **)(unaff_RBX + 0x10)" identifier = (pointer_expression "*(uint **)(unaff_RBX + 0x10)" * (cast_expression "(uint **)(unaff_RBX + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_RBX + 0x10)" ( (binary_expression "unaff_RBX + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = (ulong)*puVar3;" (assignment_expression "uVar27 = (ulong)*puVar3" identifier = (binary_expression "(ulong)*puVar3" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "uVar21 = uVar27 % *(ulong *)(puVar3 + 4);" (assignment_expression "uVar21 = uVar27 % *(ulong *)(puVar3 + 4)" identifier = (binary_expression "uVar27 % *(ulong *)(puVar3 + 4)" identifier % (pointer_expression "*(ulong *)(puVar3 + 4)" * (cast_expression "(ulong *)(puVar3 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))))) ;) (expression_statement "plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);" (assignment_expression "plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" identifier = (pointer_expression "*(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" * (cast_expression "(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(puVar3 + 2) + uVar21 * 8)" ( (binary_expression "*(long *)(puVar3 + 2) + uVar21 * 8" (pointer_expression "*(long *)(puVar3 + 2)" * (cast_expression "(long *)(puVar3 + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) + (binary_expression "uVar21 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }" if (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }" { (expression_statement "uVar17 = ((long *)*plVar26)[1];" (assignment_expression "uVar17 = ((long *)*plVar26)[1]" identifier = (subscript_expression "((long *)*plVar26)[1]" (parenthesized_expression "((long *)*plVar26)" ( (cast_expression "(long *)*plVar26" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar4 = (long *)*plVar26;" (assignment_expression "plVar4 = (long *)*plVar26" identifier = (cast_expression "(long *)*plVar26" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier))) ;) (while_statement "while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }" while (parenthesized_expression "(plVar25 = plVar4, uVar27 != uVar17)" ( (comma_expression "plVar25 = plVar4, uVar27 != uVar17" (assignment_expression "plVar25 = plVar4" identifier = identifier) , (binary_expression "uVar27 != uVar17" identifier != identifier)) )) (compound_statement "{\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }" { (expression_statement "plVar4 = (long *)*plVar25;" (assignment_expression "plVar4 = (long *)*plVar25" identifier = (cast_expression "(long *)*plVar25" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar25" * identifier))) ;) (if_statement "if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;" if (parenthesized_expression "((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))" ( (binary_expression "(plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4))" (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4))" ( (comma_expression "uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" (assignment_expression "uVar17 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) , (comma_expression "plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" (assignment_expression "plVar26 = plVar25" identifier = identifier) , (binary_expression "uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" identifier != (binary_expression "uVar17 % *(ulong *)(puVar3 + 4)" identifier % (pointer_expression "*(ulong *)(puVar3 + 4)" * (cast_expression "(ulong *)(puVar3 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))))))) ))) )) (goto_statement "goto LAB_00160b90;" goto statement_identifier ;)) })) (if_statement "if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }" if (parenthesized_expression "(*plVar26 != 0)" ( (binary_expression "*plVar26 != 0" (pointer_expression "*plVar26" * identifier) != number_literal) )) (compound_statement "{\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }" { (expression_statement "iVar9 = *(int *)(*plVar26 + 0x10);" (assignment_expression "iVar9 = *(int *)(*plVar26 + 0x10)" identifier = (pointer_expression "*(int *)(*plVar26 + 0x10)" * (cast_expression "(int *)(*plVar26 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar26 + 0x10)" ( (binary_expression "*plVar26 + 0x10" (pointer_expression "*plVar26" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_0016070c;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);" statement_identifier : (expression_statement "iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);" (assignment_expression "iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" identifier = (call_expression "FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" identifier (argument_list "(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" ( identifier , identifier , (binary_expression "*(uint *)(unaff_RBX + 8) & 0x7ffffff" (pointer_expression "*(uint *)(unaff_RBX + 8)" * (cast_expression "(uint *)(unaff_RBX + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 8)" ( (binary_expression "unaff_RBX + 8" identifier + number_literal) )))) & number_literal) , identifier )))) ;)) }))) (labeled_statement "LAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" statement_identifier : (if_statement "if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }" { (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00161e86;" goto statement_identifier ;)) (expression_statement "bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;" (assignment_expression "bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1" identifier = (binary_expression "*(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1" (pointer_expression "*(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" * (cast_expression "(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) )))) ^ number_literal)) ;) }) (else_clause "else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" else (compound_statement "{\n      bVar6 = FUN_0024abb0(lVar15);\n    }" { (expression_statement "bVar6 = FUN_0024abb0(lVar15);" (assignment_expression "bVar6 = FUN_0024abb0(lVar15)" identifier = (call_expression "FUN_0024abb0(lVar15)" identifier (argument_list "(lVar15)" ( identifier )))) ;) })))) (expression_statement "iVar30 = (int)param_6;" (assignment_expression "iVar30 = (int)param_6" identifier = (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);" (assignment_expression "iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff)" identifier = (call_expression "FUN_0015d860(bVar6,param_6 & 0xffffffff)" identifier (argument_list "(bVar6,param_6 & 0xffffffff)" ( identifier , (binary_expression "param_6 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);" (assignment_expression "puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar30 - 0xfU)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar30 - 0xfU)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar30 - 0xfU)" ( (binary_expression "iVar30 - 0xfU" identifier - number_literal) ))))) ;) (if_statement "if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }" if (parenthesized_expression "(0x19 < iVar30 - 0xfU)" ( (binary_expression "0x19 < iVar30 - 0xfU" number_literal < (binary_expression "iVar30 - 0xfU" identifier - number_literal)) )) (compound_statement "{\n      return puVar10;\n    }" { (return_statement "return puVar10;" return identifier ;) })) (expression_statement "puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);" (assignment_expression "puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" identifier = (cast_expression "(undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (binary_expression "(long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (cast_expression "(long)&switchD_00160746" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_00160746" & identifier)) (ERROR "::switchdataD_00338da4" : : identifier) + (cast_expression "(long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (parenthesized_expression "(&switchD_00160746::switchdataD_00338da4)" ( (ERROR "&switchD_00160746::" (pointer_expression "&switchD_00160746" & identifier) : :) identifier )) [ (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) )))) ;) (switch_statement "switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }" switch (parenthesized_expression "(puVar10)" ( identifier )) (compound_statement "{\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }" { (case_statement "case (undefined8 *)0x0:" case (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) :) (case_statement "case (undefined8 *)0x1:" case (cast_expression "(undefined8 *)0x1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) :) (case_statement "case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;" case (cast_expression "(undefined8 *)0x12" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (compound_statement "{\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }" { (if_statement "if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }" { (labeled_statement "LAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");" statement_identifier : (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" identifier = (call_expression "gettext("unsupported reloc %u")" identifier (argument_list "("unsupported reloc %u")" ( (string_literal ""unsupported reloc %u"" " string_content ") )))) ;)) (expression_statement "param_6 = param_6 & 0xffffffff;" (assignment_expression "param_6 = param_6 & 0xffffffff" identifier = (binary_expression "param_6 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (labeled_statement "LAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);" statement_identifier : (expression_statement "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);" (assignment_expression "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14,param_6)" ( identifier , identifier , identifier , identifier , identifier ))))) ;)) (return_statement "return puVar12;" return identifier ;) })) (expression_statement "iVar9 = (iVar30 == 0x21) + 1;" (assignment_expression "iVar9 = (iVar30 == 0x21) + 1" identifier = (binary_expression "(iVar30 == 0x21) + 1" (parenthesized_expression "(iVar30 == 0x21)" ( (binary_expression "iVar30 == 0x21" identifier == number_literal) )) + number_literal)) ;) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }" { (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" identifier = (cast_expression "(int *)(lVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" identifier = identifier) ;) (do_statement "do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" do (compound_statement "{\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" { (if_statement "if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }" if (parenthesized_expression "(*piVar11 == iVar9)" ( (binary_expression "*piVar11 == iVar9" (pointer_expression "*piVar11" * identifier) == identifier) )) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }" { (if_statement "if (piVar11[1] != -1) goto LAB_00160fd0;" if (parenthesized_expression "(piVar11[1] != -1)" ( (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00160fd0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" identifier = (pointer_expression "*(int **)(piVar11 + 2)" * (cast_expression "(int **)(piVar11 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xcb8,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" identifier = (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" * (cast_expression "(uint *)(*param_5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" ( (pointer_expression "**(code **)(*plVar2 + 0x158)" * (pointer_expression "*(code **)(*plVar2 + 0x158)" * (cast_expression "(code **)(*plVar2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x158)" ( (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }" { comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xcbe,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);" (assignment_expression "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" ( (pointer_expression "**(code **)(*plVar2 + 0x160)" * (pointer_expression "*(code **)(*plVar2 + 0x160)" * (cast_expression "(code **)(*plVar2 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x160)" ( (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (labeled_statement "LAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" statement_identifier : (if_statement "if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" if (parenthesized_expression "(iVar30 == 0xf)" ( (binary_expression "iVar30 == 0xf" identifier == number_literal) )) (compound_statement "{\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" { (expression_statement "lVar15 = extraout_RDX[6];" (assignment_expression "lVar15 = extraout_RDX[6]" identifier = (subscript_expression "extraout_RDX[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }" { (labeled_statement "LAB_00161ee6:\n            FUN_0015d780();" statement_identifier : (expression_statement "FUN_0015d780();" (call_expression "FUN_0015d780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00161eeb:\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc0b,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;)) })) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 1" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }" { comment (expression_statement "FUN_00199900("../../gold/output.h",0xc5,"address");" (call_expression "FUN_00199900("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) (expression_statement "iVar9 = iVar9 + *(int *)(lVar15 + 8);" (assignment_expression "iVar9 = iVar9 + *(int *)(lVar15 + 8)" identifier = (binary_expression "iVar9 + *(int *)(lVar15 + 8)" identifier + (pointer_expression "*(int *)(lVar15 + 8)" * (cast_expression "(int *)(lVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) )))))) ;) }))) (labeled_statement "LAB_00160a52:\n        lVar15 = extraout_RDX[4];" statement_identifier : (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;)) (if_statement "if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }" { (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) != 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) != 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }" { (expression_statement "uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10)" identifier = (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10)" (parenthesized_expression "(iVar9 + *unaff_RBP)" ( (binary_expression "iVar9 + *unaff_RBP" identifier + (pointer_expression "*unaff_RBP" * identifier)) )) - (pointer_expression "*(int *)(lVar15 + 0x10)" * (cast_expression "(int *)(lVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "*unaff_RBP = uVar28;" (assignment_expression "*unaff_RBP = uVar28" (pointer_expression "*unaff_RBP" * identifier) = identifier) ;) (return_statement "return (undefined8 *)(ulong)uVar28;" return (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) })) (labeled_statement "LAB_00161e9e:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00199900("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (labeled_statement "LAB_00161eb6:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/i386.cc",0x206,"got_size");" (call_expression "FUN_00199900("../../gold/i386.cc",0x206,"got_size")" identifier (argument_list "("../../gold/i386.cc",0x206,"got_size")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""got_size"" " string_content ") ))) ;)) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return puVar12;\n        }" { (return_statement "return puVar12;" return identifier ;) })) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xca6,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "iVar8 = *piVar11;" (assignment_expression "iVar8 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" if (parenthesized_expression "(iVar30 == 0xf)" ( (binary_expression "iVar30 == 0xf" identifier == number_literal) )) (compound_statement "{\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 1)" ( (binary_expression "iVar8 - 1" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" if (parenthesized_expression "(bVar6 == 0xa1)" ( (binary_expression "bVar6 == 0xa1" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -1) = 0xb8;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -1) = 0xb8" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -1)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" else (compound_statement "{\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" { (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) == -0x75)" ( (binary_expression "*(char *)((long)unaff_RBP + -2) == -0x75" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }" { (if_statement "if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" if (parenthesized_expression "((bVar6 & 199) != 5)" ( (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 199;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 199" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" else (compound_statement "{\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" { (if_statement "if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != '\x03')" ( (binary_expression "*(char *)((long)unaff_RBP + -2) != '\x03'" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00161683;" goto statement_identifier ;) })) (if_statement "if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" if (parenthesized_expression "((bVar6 & 199) != 5)" ( (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "(byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0" (binary_expression "(byte)((int)(uint)bVar6 >> 3) & 7" (call_expression "(byte)((int)(uint)bVar6 >> 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)(uint)bVar6 >> 3)" ( (binary_expression "(int)(uint)bVar6 >> 3" (cast_expression "(int)(uint)bVar6" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal) | number_literal)) ;) }))) (labeled_statement "LAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar12 + 0x59);" (assignment_expression "iVar8 = *(int *)(puVar12 + 0x59)" identifier = (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0016168e:\n        uVar28 = iVar9 - iVar8;" statement_identifier : (expression_statement "uVar28 = iVar9 - iVar8;" (assignment_expression "uVar28 = iVar9 - iVar8" identifier = (binary_expression "iVar9 - iVar8" identifier - identifier)) ;)) }) (else_clause "else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" else (compound_statement "{\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) })) (expression_statement "iVar8 = *piVar11;" (assignment_expression "iVar8 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "cVar7 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar7 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4))" ( (binary_expression "((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)" (parenthesized_expression "((bVar6 & 0xc0) != 0x80)" ( (binary_expression "(bVar6 & 0xc0) != 0x80" (parenthesized_expression "(bVar6 & 0xc0)" ( (binary_expression "bVar6 & 0xc0" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar6 & 7) == 4)" ( (binary_expression "(bVar6 & 7) == 4" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "bVar6 = (byte)((int)(uint)bVar6 >> 3);" (assignment_expression "bVar6 = (byte)((int)(uint)bVar6 >> 3)" identifier = (call_expression "(byte)((int)(uint)bVar6 >> 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)(uint)bVar6 >> 3)" ( (binary_expression "(int)(uint)bVar6 >> 3" (cast_expression "(int)(uint)bVar6" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) )))) ;) (if_statement "if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(cVar7 == -0x75)" ( (binary_expression "cVar7 == -0x75" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 199;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 199" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;" statement_identifier : (expression_statement "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "bVar6 & 7 | 0xc0" (binary_expression "bVar6 & 7" identifier & number_literal) | number_literal)) ;)) }) (else_clause "else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" else (if_statement "if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(cVar7 == '+')" ( (binary_expression "cVar7 == '+'" identifier == (char_literal "'+'" ' character ')) )) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "bVar6 & 7 | 0xe8" (binary_expression "bVar6 & 7" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" else (compound_statement "{\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (if_statement "if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }" if (parenthesized_expression "(cVar7 == '\x03')" ( (binary_expression "cVar7 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00160edd;" goto statement_identifier ;) })) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) }))))) (expression_statement "iVar8 = (int)puVar12[0x59];" (assignment_expression "iVar8 = (int)puVar12[0x59]" identifier = (cast_expression "(int)puVar12[0x59]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar12[0x59]" identifier [ number_literal ]))) ;) (expression_statement "uVar28 = iVar8 - iVar9;" (assignment_expression "uVar28 = iVar8 - iVar9" identifier = (binary_expression "iVar8 - iVar9" identifier - identifier)) ;) (if_statement "if (iVar30 == 0x10) goto LAB_0016168e;" if (parenthesized_expression "(iVar30 == 0x10)" ( (binary_expression "iVar30 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_0016168e;" goto statement_identifier ;)) }))) (expression_statement "*unaff_RBP = *unaff_RBP + uVar28;" (assignment_expression "*unaff_RBP = *unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "*unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) + identifier)) ;) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" identifier = (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;" case (cast_expression "(undefined8 *)0x2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(puVar13 == (undefined8 *)0x0)" ( (binary_expression "puVar13 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_00161e86:\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }" if (parenthesized_expression "(*(char *)((long)puVar13 + 0x2a61) == '\0')" ( (binary_expression "*(char *)((long)puVar13 + 0x2a61) == '\0'" (pointer_expression "*(char *)((long)puVar13 + 0x2a61)" * (cast_expression "(char *)((long)puVar13 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar13 + 0x2a61)" ( (binary_expression "(long)puVar13 + 0x2a61" (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }" { (expression_statement "puVar13 = *(undefined8 **)PTR_DAT_003f85c0;" (assignment_expression "puVar13 = *(undefined8 **)PTR_DAT_003f85c0" identifier = (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }" if (parenthesized_expression "((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'))" ( (binary_expression "(*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (parenthesized_expression "(*(int *)(puVar13 + 6) < 1)" ( (binary_expression "*(int *)(puVar13 + 6) < 1" (pointer_expression "*(int *)(puVar13 + 6)" * (cast_expression "(int *)(puVar13 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 6)" ( (binary_expression "puVar13 + 6" identifier + number_literal) )))) < number_literal) )) && (parenthesized_expression "(puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" ( (comma_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'" (assignment_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) , (binary_expression "(char)puVar13 == '\0'" (cast_expression "(char)puVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }" { comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xcd7,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) }) (else_clause "else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" else (compound_statement "{\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" { (expression_statement "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);" (assignment_expression "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (parenthesized_expression "(iVar9 + *unaff_RBP)" ( (binary_expression "iVar9 + *unaff_RBP" identifier + (pointer_expression "*unaff_RBP" * identifier)) )) - (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) )))))) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) }))) })) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;" case (cast_expression "(undefined8 *)0x3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (compound_statement "{\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }" { (expression_statement "iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);" (assignment_expression "iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3)" identifier = (binary_expression "(iVar8 != 3) + 1 + (uint)(iVar8 != 3)" (binary_expression "(iVar8 != 3) + 1" (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) + number_literal) + (call_expression "(uint)(iVar8 != 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }" { (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" identifier = (cast_expression "(int *)(lVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" identifier = identifier) ;) (do_statement "do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" do (compound_statement "{\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" { (if_statement "if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }" if (parenthesized_expression "(*piVar11 == iVar9)" ( (binary_expression "*piVar11 == iVar9" (pointer_expression "*piVar11" * identifier) == identifier) )) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }" { (if_statement "if (piVar11[1] != -1) goto LAB_00160bc0;" if (parenthesized_expression "(piVar11[1] != -1)" ( (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00160bc0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" identifier = (pointer_expression "*(int **)(piVar11 + 2)" * (cast_expression "(int **)(piVar11 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc05,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" identifier = (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" * (cast_expression "(uint *)(*param_5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" ( (pointer_expression "**(code **)(*plVar2 + 0x158)" * (pointer_expression "*(code **)(*plVar2 + 0x158)" * (cast_expression "(code **)(*plVar2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x158)" ( (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto LAB_00161eeb;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00161eeb;" goto statement_identifier ;)) (expression_statement "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);" (assignment_expression "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" ( (pointer_expression "**(code **)(*plVar2 + 0x160)" * (pointer_expression "*(code **)(*plVar2 + 0x160)" * (cast_expression "(code **)(*plVar2 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x160)" ( (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "uVar28 = iVar9 - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = iVar9 - *(int *)(lVar15 + 0x10)" identifier = (binary_expression "iVar9 - *(int *)(lVar15 + 0x10)" identifier - (pointer_expression "*(int *)(lVar15 + 0x10)" * (cast_expression "(int *)(lVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" identifier = (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (labeled_statement "LAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" statement_identifier : (if_statement "if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" { (if_statement "if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }" { (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" identifier = (call_expression "gettext("unsupported reloc %u")" identifier (argument_list "("unsupported reloc %u")" ( (string_literal ""unsupported reloc %u"" " string_content ") )))) ;) (expression_statement "param_6 = 0x12;" (assignment_expression "param_6 = 0x12" identifier = number_literal) ;) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (goto_statement "goto LAB_00160c4c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00160c26;" goto statement_identifier ;) }))) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 - 2)" ( (binary_expression "iVar9 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 + 9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 + 9)" ( (binary_expression "iVar9 + 9" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" identifier = (cast_expression "(char)unaff_RBP[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_RBP[1]" identifier [ number_literal ]))) ;) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" if (parenthesized_expression "((cVar1 == -0x73) || (cVar1 == '\x04'))" ( (binary_expression "(cVar1 == -0x73) || (cVar1 == '\x04')" (parenthesized_expression "(cVar1 == -0x73)" ( (binary_expression "cVar1 == -0x73" identifier == number_literal) )) || (parenthesized_expression "(cVar1 == '\x04')" ( (binary_expression "cVar1 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }" { (if_statement "if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;" if (parenthesized_expression "(cVar7 != -0x18 && cVar7 != -1)" ( (binary_expression "cVar7 != -0x18 && cVar7 != -1" (binary_expression "cVar7 != -0x18" identifier != number_literal) && (binary_expression "cVar7 != -1" identifier != number_literal)) )) (goto_statement "goto LAB_0016198c;" goto statement_identifier ;)) (labeled_statement "LAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" statement_identifier : (if_statement "if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" if (parenthesized_expression "(cVar1 == '\x04')" ( (binary_expression "cVar1 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 - 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 - 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 - 3)" ( (binary_expression "iVar9 - 3" identifier - number_literal) ))))) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -3) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -3) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -3)" * (cast_expression "(char *)((long)unaff_RBP + -3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -3)" ( (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" if (parenthesized_expression "(((bVar6 & 199) == 5) && (bVar6 != 0x20))" ( (binary_expression "((bVar6 & 199) == 5) && (bVar6 != 0x20)" (parenthesized_expression "((bVar6 & 199) == 5)" ( (binary_expression "(bVar6 & 199) == 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar6 != 0x20)" ( (binary_expression "bVar6 != 0x20" identifier != number_literal) ))) )) (compound_statement "{\n              lVar15 = -3;\n              lVar22 = 5;\n            }" { (expression_statement "lVar15 = -3;" (assignment_expression "lVar15 = -3" identifier = number_literal) ;) (expression_statement "lVar22 = 5;" (assignment_expression "lVar22 = 5" identifier = number_literal) ;) }) (else_clause "else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" else (compound_statement "{\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar15 = -3;" (assignment_expression "lVar15 = -3" identifier = number_literal) ;) (expression_statement "lVar22 = 5;" (assignment_expression "lVar22 = 5" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00161451;" goto statement_identifier ;) }))) }) (else_clause "else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" else (compound_statement "{\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }" if (parenthesized_expression "(cVar7 != -0x18 && cVar7 != -1)" ( (binary_expression "cVar7 != -0x18 && cVar7 != -1" (binary_expression "cVar7 != -0x18" identifier != number_literal) && (binary_expression "cVar7 != -1" identifier != number_literal)) )) (compound_statement "{\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }" { (labeled_statement "LAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");" statement_identifier : (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;)) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (goto_statement "goto LAB_00161589;" goto statement_identifier ;) })) }))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 + 10)" ( (binary_expression "iVar9 + 10" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" if (parenthesized_expression "((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)))))" ( (binary_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))" (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" ( (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" ( (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" ( (binary_expression "bVar6 & 0xf8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar6 & 3) != 0)" ( (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" ( (binary_expression "bVar6 & 3" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))" ( (parenthesized_expression "((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)))" ( (binary_expression "(cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))" (parenthesized_expression "(cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70))" ( (binary_expression "cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)" (binary_expression "cVar7 == -0x18" identifier == number_literal) && (parenthesized_expression "(*(char *)((long)unaff_RBP + 9) == -0x70)" ( (binary_expression "*(char *)((long)unaff_RBP + 9) == -0x70" (pointer_expression "*(char *)((long)unaff_RBP + 9)" * (cast_expression "(char *)((long)unaff_RBP + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 9)" ( (binary_expression "(long)unaff_RBP + 9" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))" ( (binary_expression "(bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) == (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" ( (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" * (cast_expression "(byte *)((long)unaff_RBP + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) ))) ))) )) ))) )) (compound_statement "{\n          lVar15 = -2;\n          lVar22 = 6;\n        }" { (expression_statement "lVar15 = -2;" (assignment_expression "lVar15 = -2" identifier = number_literal) ;) (expression_statement "lVar22 = 6;" (assignment_expression "lVar22 = 6" identifier = number_literal) ;) }) (else_clause "else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" else (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar15 = -2;" (assignment_expression "lVar15 = -2" identifier = number_literal) ;) (expression_statement "lVar22 = 6;" (assignment_expression "lVar22 = 6" identifier = number_literal) ;) }))) (labeled_statement "LAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;" statement_identifier : (expression_statement "*(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;" (assignment_expression "*(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f" (pointer_expression "*(undefined8 *)(lVar15 + (long)unaff_RBP)" * (cast_expression "(undefined8 *)(lVar15 + (long)unaff_RBP)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + (long)unaff_RBP)" ( (binary_expression "lVar15 + (long)unaff_RBP" identifier + (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;" (assignment_expression "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87" (pointer_expression "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" * (cast_expression "(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" ( (binary_expression "(undefined8 *)(lVar15 + (long)unaff_RBP) + 1" (cast_expression "(undefined8 *)(lVar15 + (long)unaff_RBP)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + (long)unaff_RBP)" ( (binary_expression "lVar15 + (long)unaff_RBP" identifier + (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;" (assignment_expression "*(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28" (pointer_expression "*(int *)((long)unaff_RBP + lVar22)" * (cast_expression "(int *)((long)unaff_RBP + lVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar22)" ( (binary_expression "(long)unaff_RBP + lVar22" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(int *)((long)unaff_RBP + lVar22) + uVar28" (pointer_expression "*(int *)((long)unaff_RBP + lVar22)" * (cast_expression "(int *)((long)unaff_RBP + lVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar22)" ( (binary_expression "(long)unaff_RBP + lVar22" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) + identifier)) ;) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return puVar12;\n        }" { (return_statement "return puVar12;" return identifier ;) })) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xbf5,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 9)" ( (binary_expression "iVar8 + 9" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" identifier = (cast_expression "(char)unaff_RBP[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_RBP[1]" identifier [ number_literal ]))) ;) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" if (parenthesized_expression "((cVar1 == -0x73) || (cVar1 == '\x04'))" ( (binary_expression "(cVar1 == -0x73) || (cVar1 == '\x04')" (parenthesized_expression "(cVar1 == -0x73)" ( (binary_expression "cVar1 == -0x73" identifier == number_literal) )) || (parenthesized_expression "(cVar1 == '\x04')" ( (binary_expression "cVar1 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }" { (if_statement "if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;" if (parenthesized_expression "(cVar7 != -1 && cVar7 != -0x18)" ( (binary_expression "cVar7 != -1 && cVar7 != -0x18" (binary_expression "cVar7 != -1" identifier != number_literal) && (binary_expression "cVar7 != -0x18" identifier != number_literal)) )) (goto_statement "goto LAB_00161759;" goto statement_identifier ;)) (labeled_statement "LAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;" statement_identifier : (if_statement "if (cVar1 != '\x04') goto LAB_001607f1;" if (parenthesized_expression "(cVar1 != '\x04')" ( (binary_expression "cVar1 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_001607f1;" goto statement_identifier ;))) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 3)" ( (binary_expression "iVar8 - 3" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -3) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -3) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -3)" * (cast_expression "(char *)((long)unaff_RBP + -3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -3)" ( (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(((bVar6 & 199) != 5) || (bVar6 == 0x20))" ( (binary_expression "((bVar6 & 199) != 5) || (bVar6 == 0x20)" (parenthesized_expression "((bVar6 & 199) != 5)" ( (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar6 == 0x20)" ( (binary_expression "bVar6 == 0x20" identifier == number_literal) ))) )) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" identifier = number_literal) ;) (expression_statement "*(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -3)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -3)" ( (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 5)" * (cast_expression "(undefined4 *)((long)unaff_RBP + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" else (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }" if (parenthesized_expression "(cVar7 != -1 && cVar7 != -0x18)" ( (binary_expression "cVar7 != -1 && cVar7 != -0x18" (binary_expression "cVar7 != -1" identifier != number_literal) && (binary_expression "cVar7 != -0x18" identifier != number_literal)) )) (compound_statement "{\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }" { (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (labeled_statement "LAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");" statement_identifier : (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;)) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_001614c8;" goto statement_identifier ;) })) (labeled_statement "LAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" statement_identifier : (if_statement "if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" if (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" ( (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" ( (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" ( (binary_expression "bVar6 & 0xf8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar6 & 3) != 0)" ( (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" ( (binary_expression "bVar6 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }" { (if_statement "if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }" if (parenthesized_expression "(cVar7 != -0x18)" ( (binary_expression "cVar7 != -0x18" identifier != number_literal) )) (compound_statement "{\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }" { (if_statement "if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;" if (parenthesized_expression "((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7))" ( (binary_expression "(bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) != (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" ( (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" * (cast_expression "(byte *)((long)unaff_RBP + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) ))) )) (goto_statement "goto LAB_001607ff;" goto statement_identifier ;)) (goto_statement "goto LAB_00160829;" goto statement_identifier ;) })) (labeled_statement "LAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" statement_identifier : (if_statement "if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" if (parenthesized_expression "((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70))" ( (binary_expression "(unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)" (parenthesized_expression "(unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9))" ( (binary_expression "unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)" identifier <= (cast_expression "(undefined8 *)(ulong)(*(int *)*param_5 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(*(int *)*param_5 + 9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(int *)*param_5 + 9)" ( (binary_expression "*(int *)*param_5 + 9" (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) + number_literal) ))))) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + 9) != -0x70)" ( (binary_expression "*(char *)((long)unaff_RBP + 9) != -0x70" (pointer_expression "*(char *)((long)unaff_RBP + 9)" * (cast_expression "(char *)((long)unaff_RBP + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 9)" ( (binary_expression "(long)unaff_RBP + 9" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" { (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;" (assignment_expression "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c" (pointer_expression "*(undefined2 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined2 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;" (assignment_expression "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e" (pointer_expression "*(undefined1 *)(unaff_RBP + 2)" * (cast_expression "(undefined1 *)(unaff_RBP + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBP + 2)" ( (binary_expression "unaff_RBP + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_0016087d;" goto statement_identifier ;) }))) }) (else_clause "else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" else (compound_statement "{\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" { (labeled_statement "LAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;" statement_identifier : (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;)) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;" statement_identifier : (if_statement "if (cVar7 != -1) goto LAB_00160833;" if (parenthesized_expression "(cVar7 != -1)" ( (binary_expression "cVar7 != -1" identifier != number_literal) )) (goto_statement "goto LAB_00160833;" goto statement_identifier ;))) })))) (expression_statement "lVar15 = 6;" (assignment_expression "lVar15 = 6" identifier = number_literal) ;) (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined4 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);" statement_identifier : (expression_statement "*(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);" (assignment_expression "*(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9)" (pointer_expression "*(int *)((long)unaff_RBP + lVar15)" * (cast_expression "(int *)((long)unaff_RBP + lVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar15)" ( (binary_expression "(long)unaff_RBP + lVar15" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9)" (pointer_expression "*(int *)((long)unaff_RBP + lVar15)" * (cast_expression "(int *)((long)unaff_RBP + lVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar15)" ( (binary_expression "(long)unaff_RBP + lVar15" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) + (parenthesized_expression "((int)puVar12[0x59] - iVar9)" ( (binary_expression "(int)puVar12[0x59] - iVar9" (cast_expression "(int)puVar12[0x59]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar12[0x59]" identifier [ number_literal ])) - identifier) )))) ;)) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;" case (cast_expression "(undefined8 *)0x4" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }" if (parenthesized_expression "(*(int *)((long)param_1 + 4) == 1)" ( (binary_expression "*(int *)((long)param_1 + 4) == 1" (pointer_expression "*(int *)((long)param_1 + 4)" * (cast_expression "(int *)((long)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 4)" ( (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }" { (expression_statement "uVar14 = gettext("both SUN and GNU model TLS relocations");" (assignment_expression "uVar14 = gettext("both SUN and GNU model TLS relocations")" identifier = (call_expression "gettext("both SUN and GNU model TLS relocations")" identifier (argument_list "("both SUN and GNU model TLS relocations")" ( (string_literal ""both SUN and GNU model TLS relocations"" " string_content ") )))) ;) (expression_statement "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);" (assignment_expression "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" identifier (argument_list "(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" ( identifier , identifier , (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) , identifier ))))) ;) (return_statement "return puVar12;" return identifier ;) })) (expression_statement "*(undefined4 *)((long)param_1 + 4) = 2;" (assignment_expression "*(undefined4 *)((long)param_1 + 4) = 2" (pointer_expression "*(undefined4 *)((long)param_1 + 4)" * (cast_expression "(undefined4 *)((long)param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 4)" ( (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (compound_statement "{\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }" { (if_statement "if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }" { (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" identifier = (call_expression "gettext("unsupported reloc %u")" identifier (argument_list "("unsupported reloc %u")" ( (string_literal ""unsupported reloc %u"" " string_content ") )))) ;) (expression_statement "param_6 = 0x13;" (assignment_expression "param_6 = 0x13" identifier = number_literal) ;) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (goto_statement "goto LAB_00160c4c;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(extraout_RDX + 0x12);" (assignment_expression "iVar9 = *(int *)(extraout_RDX + 0x12)" identifier = (pointer_expression "*(int *)(extraout_RDX + 0x12)" * (cast_expression "(int *)(extraout_RDX + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_RDX + 0x12)" ( (binary_expression "extraout_RDX + 0x12" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }" if (parenthesized_expression "(iVar9 == -1)" ( (binary_expression "iVar9 == -1" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }" { comment (expression_statement "FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");" (call_expression "FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry")" identifier (argument_list "("../../gold/i386.cc",0x65a,"got_mod_index_entry")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""got_mod_index_entry"" " string_content ") ))) ;) })) (goto_statement "goto LAB_00160a52;" goto statement_identifier ;) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return puVar12;\n        }" { (return_statement "return puVar12;" return identifier ;) })) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc71,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 - 2)" ( (binary_expression "iVar9 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) })) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" identifier = (cast_expression "(char)unaff_RBP[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_RBP[1]" identifier [ number_literal ]))) ;) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" if (parenthesized_expression "((cVar7 == -0x18) || (cVar7 == -1))" ( (binary_expression "(cVar7 == -0x18) || (cVar7 == -1)" (parenthesized_expression "(cVar7 == -0x18)" ( (binary_expression "cVar7 == -0x18" identifier == number_literal) )) || (parenthesized_expression "(cVar7 == -1)" ( (binary_expression "cVar7 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        iVar8 = (cVar7 != -0x18) + 9;\n      }" { (expression_statement "iVar8 = (cVar7 != -0x18) + 9;" (assignment_expression "iVar8 = (cVar7 != -0x18) + 9" identifier = (binary_expression "(cVar7 != -0x18) + 9" (parenthesized_expression "(cVar7 != -0x18)" ( (binary_expression "cVar7 != -0x18" identifier != number_literal) )) + number_literal)) ;) }) (else_clause "else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" else (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) }))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)" identifier < (cast_expression "(undefined8 *)(ulong)(uint)(iVar8 + iVar9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uint)(iVar8 + iVar9)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }" if (parenthesized_expression "(cVar1 != -0x73)" ( (binary_expression "cVar1 != -0x73" identifier != number_literal) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" if (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" ( (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" ( (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" ( (binary_expression "bVar6 & 0xf8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar6 & 3) != 0)" ( (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" ( (binary_expression "bVar6 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }" { (if_statement "if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }" if (parenthesized_expression "(cVar7 != -0x18)" ( (binary_expression "cVar7 != -0x18" identifier != number_literal) )) (compound_statement "{\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }" { (if_statement "if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" if (parenthesized_expression "((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7))" ( (binary_expression "(bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) != (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" ( (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" * (cast_expression "(byte *)((long)unaff_RBP + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) ))) )) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_001610d7;" goto statement_identifier ;) })) (labeled_statement "LAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;" statement_identifier : (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;" (assignment_expression "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93" (pointer_expression "*(undefined2 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined2 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;" (assignment_expression "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d95" (pointer_expression "*(undefined1 *)(unaff_RBP + 2)" * (cast_expression "(undefined1 *)(unaff_RBP + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBP + 2)" ( (binary_expression "unaff_RBP + 2" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" else (compound_statement "{\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (cVar7 == -0x18) goto LAB_00161808;" if (parenthesized_expression "(cVar7 == -0x18)" ( (binary_expression "cVar7 == -0x18" identifier == number_literal) )) (goto_statement "goto LAB_00161808;" goto statement_identifier ;)) (labeled_statement "LAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;" statement_identifier : (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined4 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;" case (cast_expression "(undefined8 *)0x11" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);" (assignment_expression "puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" identifier = (cast_expression "(undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (binary_expression "(long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (cast_expression "(long)&switchD_00160746" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_00160746" & identifier)) (ERROR "::switchdataD_00338da4" : : identifier) + (cast_expression "(long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (parenthesized_expression "(&switchD_00160746::switchdataD_00338da4)" ( (ERROR "&switchD_00160746::" (pointer_expression "&switchD_00160746" & identifier) : :) identifier )) [ (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) )))) ;) (if_statement "if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }" if (parenthesized_expression "((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0))" ( (binary_expression "(iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)" (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) && (parenthesized_expression "(puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)" ( (comma_expression "puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0" (assignment_expression "puVar10 = *(undefined8 **)(uVar24 + 0x38)" identifier = (pointer_expression "*(undefined8 **)(uVar24 + 0x38)" * (cast_expression "(undefined8 **)(uVar24 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar24 + 0x38)" ( (binary_expression "uVar24 + 0x38" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0" (parenthesized_expression "(*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4)" ( (binary_expression "*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4" (pointer_expression "*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1)" * (cast_expression "(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(uVar24 + 0x38) + 1)" ( (binary_expression "*(undefined8 **)(uVar24 + 0x38) + 1" (pointer_expression "*(undefined8 **)(uVar24 + 0x38)" * (cast_expression "(undefined8 **)(uVar24 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar24 + 0x38)" ( (binary_expression "uVar24 + 0x38" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n            return puVar12;\n          }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return puVar12;\n          }" { (return_statement "return puVar12;" return identifier ;) })) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc95,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar9 = iVar9 - *(int *)(puVar12 + 0x59);" (assignment_expression "iVar9 = iVar9 - *(int *)(puVar12 + 0x59)" identifier = (binary_expression "iVar9 - *(int *)(puVar12 + 0x59)" identifier - (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) )))))) ;) (expression_statement "puVar10 = puVar12;" (assignment_expression "puVar10 = puVar12" identifier = identifier) ;) })) (expression_statement "*unaff_RBP = *unaff_RBP + iVar9;" (assignment_expression "*unaff_RBP = *unaff_RBP + iVar9" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "*unaff_RBP + iVar9" (pointer_expression "*unaff_RBP" * identifier) + identifier)) ;) (return_statement "return puVar10;" return identifier ;)) (case_statement "case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;" case (cast_expression "(undefined8 *)0x13" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;" if (parenthesized_expression "(puVar13 == (undefined8 *)0x0)" ( (binary_expression "puVar13 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00161e86;" goto statement_identifier ;)) (if_statement "if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }" if (parenthesized_expression "(*(char *)((long)puVar13 + 0x2a61) == '\0')" ( (binary_expression "*(char *)((long)puVar13 + 0x2a61) == '\0'" (pointer_expression "*(char *)((long)puVar13 + 0x2a61)" * (cast_expression "(char *)((long)puVar13 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar13 + 0x2a61)" ( (binary_expression "(long)puVar13 + 0x2a61" (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }" { (expression_statement "puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);" (assignment_expression "puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" identifier = (binary_expression "(undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (cast_expression "(undefined8 *)(ulong)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (binary_expression "*(long *)PTR_DAT_003f85c0 + 0x30" (pointer_expression "*(long *)PTR_DAT_003f85c0" * (cast_expression "(long *)PTR_DAT_003f85c0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }" if (parenthesized_expression "(((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'))" ( (binary_expression "((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (parenthesized_expression "((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1)" ( (binary_expression "(int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1" (cast_expression "(int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" * (cast_expression "(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (binary_expression "*(long *)PTR_DAT_003f85c0 + 0x30" (pointer_expression "*(long *)PTR_DAT_003f85c0" * (cast_expression "(long *)PTR_DAT_003f85c0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) < number_literal) )) && (parenthesized_expression "(puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" ( (comma_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'" (assignment_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) , (binary_expression "(char)puVar13 == '\0'" (cast_expression "(char)puVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }" { comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xce7,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) }) (else_clause "else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" else (compound_statement "{\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" { (expression_statement "uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;" (assignment_expression "uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9" identifier = (binary_expression "(*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9" (parenthesized_expression "(*unaff_RBP + *(int *)(puVar12 + 0x59))" ( (binary_expression "*unaff_RBP + *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" * identifier) + (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) ))))) )) - identifier)) ;) (expression_statement "*unaff_RBP = uVar28;" (assignment_expression "*unaff_RBP = uVar28" (pointer_expression "*unaff_RBP" * identifier) = identifier) ;) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" identifier = (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))) })) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x18:" case (cast_expression "(undefined8 *)0x18" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) :) (case_statement "case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" case (cast_expression "(undefined8 *)0x19" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "*(undefined4 *)((long)param_1 + 4) = 2;" (assignment_expression "*(undefined4 *)((long)param_1 + 4) = 2" (pointer_expression "*(undefined4 *)((long)param_1 + 4)" * (cast_expression "(undefined4 *)((long)param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 4)" ( (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n            return puVar12;\n          }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return puVar12;\n          }" { (return_statement "return puVar12;" return identifier ;) })) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc2a,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }" if (parenthesized_expression "(iVar30 == 0x27)" ( (binary_expression "iVar30 == 0x27" identifier == number_literal) )) (compound_statement "{\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" if (parenthesized_expression "((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d))" ( (binary_expression "(*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)" (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -2) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + -1) != -0x7d)" ( (binary_expression "*(char *)((long)unaff_RBP + -1) != -0x7d" (pointer_expression "*(char *)((long)unaff_RBP + -1)" * (cast_expression "(char *)((long)unaff_RBP + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -1) = 5;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -1) = 5" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -1)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);" (assignment_expression "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (parenthesized_expression "(iVar9 + *unaff_RBP)" ( (binary_expression "iVar9 + *unaff_RBP" identifier + (pointer_expression "*unaff_RBP" * identifier)) )) - (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) )))))) ;) (return_statement "return puVar12;" return identifier ;) })) (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 2);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 2)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar8 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 2)" ( (binary_expression "iVar8 + 2" identifier + number_literal) ))))) ;) (if_statement "if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < puVar13)" ( (binary_expression "unaff_R12 < puVar13" identifier < identifier) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (labeled_statement "LAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" statement_identifier : (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;)) })) (labeled_statement "LAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" statement_identifier : (if_statement "if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10'))" ( (binary_expression "((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')" (parenthesized_expression "((char)*unaff_RBP != -1)" ( (binary_expression "(char)*unaff_RBP != -1" (cast_expression "(char)*unaff_RBP" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*unaff_RBP" * identifier)) != number_literal) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + 1) != '\x10')" ( (binary_expression "*(char *)((long)unaff_RBP + 1) != '\x10'" (pointer_expression "*(char *)((long)unaff_RBP + 1)" * (cast_expression "(char *)((long)unaff_RBP + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 1)" ( (binary_expression "(long)unaff_RBP + 1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\x10'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;) }))) (expression_statement "*(undefined2 *)unaff_RBP = 0x9066;" (assignment_expression "*(undefined2 *)unaff_RBP = 0x9066" (pointer_expression "*(undefined2 *)unaff_RBP" * (cast_expression "(undefined2 *)unaff_RBP" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" else (compound_statement "{\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" { (if_statement "if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" if (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) (compound_statement "{\n          iVar31 = 1;\n          iVar9 = 0;\n        }" { (expression_statement "iVar31 = 1;" (assignment_expression "iVar31 = 1" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" else (if_statement "if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" if (parenthesized_expression "((iVar30 == 0x27) && (iVar8 == 0))" ( (binary_expression "(iVar30 == 0x27) && (iVar8 == 0)" (parenthesized_expression "(iVar30 == 0x27)" ( (binary_expression "iVar30 == 0x27" identifier == number_literal) )) && (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }" { (expression_statement "lVar22 = extraout_RDX[4];" (assignment_expression "lVar22 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar22 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar22 == 0)" ( (binary_expression "lVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar22 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar22 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar22 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar22 + 0x20) & 2" (pointer_expression "*(byte *)(lVar22 + 0x20)" * (cast_expression "(byte *)(lVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar22 + 0x20)" ( (binary_expression "lVar22 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "lVar5 = extraout_RDX[6];" (assignment_expression "lVar5 = extraout_RDX[6]" identifier = (subscript_expression "extraout_RDX[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar5 == 0) goto LAB_00161ee6;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161ee6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar5 + 0x20) & 2" (pointer_expression "*(byte *)(lVar5 + 0x20)" * (cast_expression "(byte *)(lVar5 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);" (assignment_expression "iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10)" identifier = (binary_expression "(int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10)" (cast_expression "(int)*(undefined8 *)(lVar22 + 0x10)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(undefined8 *)(lVar22 + 0x10)" * (cast_expression "(undefined8 *)(lVar22 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar22 + 0x10)" ( (binary_expression "lVar22 + 0x10" identifier + number_literal) ))))) + (pointer_expression "*(int *)(lVar5 + 0x10)" * (cast_expression "(int *)(lVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" identifier = number_literal) ;) }) (else_clause "else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" else (compound_statement "{\n          iVar31 = 4;\n          iVar9 = 0;\n        }" { (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }))))) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }" { (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" identifier = (cast_expression "(int *)(lVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" identifier = identifier) ;) (do_statement "do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" do (compound_statement "{\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" { (if_statement "if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }" if (parenthesized_expression "(*piVar11 == iVar31)" ( (binary_expression "*piVar11 == iVar31" (pointer_expression "*piVar11" * identifier) == identifier) )) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }" { (if_statement "if (piVar11[1] != -1) goto LAB_00160da0;" if (parenthesized_expression "(piVar11[1] != -1)" ( (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00160da0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" identifier = (pointer_expression "*(int **)(piVar11 + 2)" * (cast_expression "(int **)(piVar11 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc43,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" identifier = (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" * (cast_expression "(uint *)(*param_5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" ( (pointer_expression "**(code **)(*plVar2 + 0x158)" * (pointer_expression "*(code **)(*plVar2 + 0x158)" * (cast_expression "(code **)(*plVar2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x158)" ( (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar31,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }" { comment (expression_statement "FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc49,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);" (assignment_expression "uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" ( (pointer_expression "**(code **)(*plVar2 + 0x160)" * (pointer_expression "*(code **)(*plVar2 + 0x160)" * (cast_expression "(code **)(*plVar2 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x160)" ( (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar31,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));" (assignment_expression "puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10))" identifier = (cast_expression "(undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uVar28 - *(long *)(lVar15 + 0x10))" ( (binary_expression "(ulong)uVar28 - *(long *)(lVar15 + 0x10)" (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) - (pointer_expression "*(long *)(lVar15 + 0x10)" * (cast_expression "(long *)(lVar15 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar31 = (int)puVar13;" (assignment_expression "iVar31 = (int)puVar13" identifier = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_00160de8:\n        uVar28 = iVar9 + iVar31;" statement_identifier : (expression_statement "uVar28 = iVar9 + iVar31;" (assignment_expression "uVar28 = iVar9 + iVar31" identifier = (binary_expression "iVar9 + iVar31" identifier + identifier)) ;)) (if_statement "if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" if (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) (compound_statement "{\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }" { (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }" if (parenthesized_expression "(iVar30 != 0x27)" ( (binary_expression "iVar30 != 0x27" identifier != number_literal) )) (compound_statement "{\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }" { (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 2);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 2)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar8 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 2)" ( (binary_expression "iVar8 + 2" identifier + number_literal) ))))) ;) (if_statement "if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }" if (parenthesized_expression "(unaff_R12 < puVar13)" ( (binary_expression "unaff_R12 < puVar13" identifier < identifier) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (goto_statement "goto LAB_00161333;" goto statement_identifier ;) })) (goto_statement "goto LAB_00160f46;" goto statement_identifier ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 4);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 4)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" if (parenthesized_expression "(unaff_R12 < puVar13)" ( (binary_expression "unaff_R12 < puVar13" identifier < identifier) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;) })) (if_statement "if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" if (parenthesized_expression "((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d))" ( (binary_expression "(*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)" (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -2) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + -1) != -0x7d)" ( (binary_expression "*(char *)((long)unaff_RBP + -1) != -0x7d" (pointer_expression "*(char *)((long)unaff_RBP + -1)" * (cast_expression "(char *)((long)unaff_RBP + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x8b;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x8b" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" else (compound_statement "{\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" { (if_statement "if (iVar8 != 0) goto LAB_00160e10;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00160e10;" goto statement_identifier ;)) (if_statement "if (iVar30 != 0x27) {\n            return puVar13;\n          }" if (parenthesized_expression "(iVar30 != 0x27)" ( (binary_expression "iVar30 != 0x27" identifier != number_literal) )) (compound_statement "{\n            return puVar13;\n          }" { (return_statement "return puVar13;" return identifier ;) })) }))) (labeled_statement "LAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;" statement_identifier : (expression_statement "*unaff_RBP = *unaff_RBP + uVar28;" (assignment_expression "*unaff_RBP = *unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "*unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) + identifier)) ;)) })))) })) (return_statement "return puVar13;" return identifier ;) })) (expression_statement "uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];" (assignment_expression "uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21]" identifier = (cast_expression "(uint)(byte)PTR_DAT_003f85c0[0x21]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR_DAT_003f85c0[0x21]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR_DAT_003f85c0[0x21]" identifier [ number_literal ])))) ;) (if_statement "if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" if (parenthesized_expression "(PTR_DAT_003f85c0[0x21] == 0)" ( (binary_expression "PTR_DAT_003f85c0[0x21] == 0" (subscript_expression "PTR_DAT_003f85c0[0x21]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }" { (expression_statement "bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;" (assignment_expression "bVar18 = *(byte *)((long)param_1 + 0x3a) & 7" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }" { (expression_statement "iVar9 = *(int *)(param_1 + 3);" (assignment_expression "iVar9 = *(int *)(param_1 + 3)" identifier = (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;" if (parenthesized_expression "((iVar9 == 0) && (bVar16 != 0))" ( (binary_expression "(iVar9 == 0) && (bVar16 != 0)" (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00160229;" goto statement_identifier ;)) (labeled_statement "LAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;" statement_identifier : (if_statement "if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;" if (parenthesized_expression "(iVar9 != 0xfff1 || bVar16 != 0)" ( (binary_expression "iVar9 != 0xfff1 || bVar16 != 0" (binary_expression "iVar9 != 0xfff1" identifier != number_literal) || (binary_expression "bVar16 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00160333;" goto statement_identifier ;))) (labeled_statement "LAB_001604b0:\n      uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;) })) (if_statement "if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" if (parenthesized_expression "(bVar18 == 4)" ( (binary_expression "bVar18 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" { (labeled_statement "LAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;" statement_identifier : (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) (if_statement "if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }" if (parenthesized_expression "(bVar18 == 0)" ( (binary_expression "bVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 3);" (assignment_expression "iVar9 = *(int *)(param_1 + 3)" identifier = (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_00160320;" goto statement_identifier ;) })) })) (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" identifier = identifier) ;) (if_statement "if (bVar18 == 3) goto LAB_0016025b;" if (parenthesized_expression "(bVar18 == 3)" ( (binary_expression "bVar18 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;)) (labeled_statement "LAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" statement_identifier : (if_statement "if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" if (parenthesized_expression "((uVar28 & 1) == 0)" ( (binary_expression "(uVar28 & 1) == 0" (parenthesized_expression "(uVar28 & 1)" ( (binary_expression "uVar28 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" { (labeled_statement "LAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }" statement_identifier : (if_statement "if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }" if (parenthesized_expression "(((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1))" ( (binary_expression "((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)" (parenthesized_expression "((uVar28 & 8) != 0)" ( (binary_expression "(uVar28 & 8) != 0" (parenthesized_expression "(uVar28 & 8)" ( (binary_expression "uVar28 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)((long)param_1 + 0x24) != -1)" ( (binary_expression "*(int *)((long)param_1 + 0x24) != -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" * (cast_expression "(int *)((long)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        return puVar12;\n      }" { (return_statement "return puVar12;" return identifier ;) }))) (if_statement "if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }" if (parenthesized_expression "((uVar28 & 0x10) == 0)" ( (binary_expression "(uVar28 & 0x10) == 0" (parenthesized_expression "(uVar28 & 0x10)" ( (binary_expression "uVar28 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;" if (parenthesized_expression "(((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1))" ( (binary_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)" (parenthesized_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0'))" ( (binary_expression "(*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')" (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2a61) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" * (cast_expression "(char *)(lVar15 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(lVar15 + 0x42d1) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x42d1) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x42d1)" * (cast_expression "(char *)(lVar15 + 0x42d1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(int *)((long)param_1 + 0x24) != -1)" ( (binary_expression "*(int *)((long)param_1 + 0x24) != -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" * (cast_expression "(int *)((long)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) })) (if_statement "if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" if (parenthesized_expression "(bVar18 == 0)" ( (binary_expression "bVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;" (assignment_expression "uVar19 = *(byte *)(param_1[2] + 0x3c) & 1" identifier = (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" * (cast_expression "(byte *)(param_1[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x3c)" ( (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0))" ( (binary_expression "((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)" (parenthesized_expression "((*(byte *)(param_1[2] + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" * (cast_expression "(byte *)(param_1[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x3c)" ( (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)" ( (comma_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0" (assignment_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & (binary_expression "*(int *)(param_1 + 3) == 0" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) == number_literal))) , (comma_expression "uVar19 = (uint)bVar6, bVar6 == 0" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) , (binary_expression "bVar6 == 0" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_001604f0:\n          uVar19 = uVar29;" statement_identifier : (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" identifier = identifier) ;)) (if_statement "if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }" if (parenthesized_expression "(((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0))" ( (binary_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x39) & 3)" ( (binary_expression "*(byte *)((long)param_1 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_1 + 0x39)" * (cast_expression "(byte *)((long)param_1 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x39)" ( (binary_expression "(long)param_1 + 0x39" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3b) & 0x10)" ( (binary_expression "*(byte *)((long)param_1 + 0x3b) & 0x10" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (expression_statement "bVar6 = *(byte *)(lVar15 + 0x2a61);" (assignment_expression "bVar6 = *(byte *)(lVar15 + 0x2a61)" identifier = (pointer_expression "*(byte *)(lVar15 + 0x2a61)" * (cast_expression "(byte *)(lVar15 + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }" if (parenthesized_expression "((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0'))))" ( (binary_expression "(bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))" (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))" ( (parenthesized_expression "(uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0'))" ( (comma_expression "uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')" (assignment_expression "uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a)" identifier = (call_expression "FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a)" identifier (argument_list "(lVar15 + 0x9120,*param_1,0,&local_2a)" ( (binary_expression "lVar15 + 0x9120" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , (pointer_expression "&local_2a" & identifier) )))) , (binary_expression "(char)uVar19 == '\0'\n                || (local_2a != '\0')" (binary_expression "(char)uVar19 == '\0'" (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(local_2a != '\0')" ( (binary_expression "local_2a != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) (compound_statement "{\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;" if (parenthesized_expression "(*(char *)(lVar15 + 0xd21) != '\0')" ( (binary_expression "*(char *)(lVar15 + 0xd21) != '\0'" (pointer_expression "*(char *)(lVar15 + 0xd21)" * (cast_expression "(char *)(lVar15 + 0xd21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xd21)" ( (binary_expression "lVar15 + 0xd21" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 0xf) != 1)" ( (binary_expression "(*(byte *)(param_1 + 7) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 7) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 7) & 0xf" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }" { (expression_statement "uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;" (assignment_expression "uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1" identifier = (binary_expression "*(byte *)(lVar15 + 0xde9) ^ 1" (pointer_expression "*(byte *)(lVar15 + 0xde9)" * (cast_expression "(byte *)(lVar15 + 0xde9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xde9)" ( (binary_expression "lVar15 + 0xde9" identifier + number_literal) )))) ^ number_literal)) ;) })) })) })) })) }) (else_clause "else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" else (compound_statement "{\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" { (if_statement "if (bVar18 != 4) goto LAB_001604f0;" if (parenthesized_expression "(bVar18 != 4)" ( (binary_expression "bVar18 != 4" identifier != number_literal) )) (goto_statement "goto LAB_001604f0;" goto statement_identifier ;)) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;) }))) (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" if (parenthesized_expression "(*(byte *)(lVar15 + 0x2a61) == 0)" ( (binary_expression "*(byte *)(lVar15 + 0x2a61) == 0" (pointer_expression "*(byte *)(lVar15 + 0x2a61)" * (cast_expression "(byte *)(lVar15 + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }" { (if_statement "if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;" if (parenthesized_expression "(*(byte *)(lVar15 + 0x42d1) == 0)" ( (binary_expression "*(byte *)(lVar15 + 0x42d1) == 0" (pointer_expression "*(byte *)(lVar15 + 0x42d1)" * (cast_expression "(byte *)(lVar15 + 0x42d1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00160470;" goto statement_identifier ;)) (expression_statement "uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);" (assignment_expression "uVar19 = (uint)*(byte *)(lVar15 + 0x42d1)" identifier = (binary_expression "(uint)*(byte *)(lVar15 + 0x42d1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(lVar15 + 0x42d1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" else (compound_statement "{\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" { (expression_statement "uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);" (assignment_expression "uVar19 = (uint)*(byte *)(lVar15 + 0x2a61)" identifier = (binary_expression "(uint)*(byte *)(lVar15 + 0x2a61)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(lVar15 + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" else (compound_statement "{\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;" statement_identifier : (if_statement "if ((uVar28 & 1) == 0) goto LAB_00160264;" if (parenthesized_expression "((uVar28 & 1) == 0)" ( (binary_expression "(uVar28 & 1) == 0" (parenthesized_expression "(uVar28 & 1)" ( (binary_expression "uVar28 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;))) }))) (if_statement "if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }" if (parenthesized_expression "(((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1))" ( (binary_expression "((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)" (parenthesized_expression "((uVar28 & 8) == 0)" ( (binary_expression "(uVar28 & 8) == 0" (parenthesized_expression "(uVar28 & 8)" ( (binary_expression "uVar28 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)((long)param_1 + 0x24) == -1)" ( (binary_expression "*(int *)((long)param_1 + 0x24) == -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" * (cast_expression "(int *)((long)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }" { (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }" { (if_statement "if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))" ( (binary_expression "((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(param_1[2] + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" * (cast_expression "(byte *)(param_1[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x3c)" ( (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)))" ( (parenthesized_expression "(*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))" ( (binary_expression "*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)" (binary_expression "*(int *)(param_1 + 3) == 0" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)param_1 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" else (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 4)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 4" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;)))) (if_statement "if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x39) & 3)" ( (binary_expression "*(byte *)((long)param_1 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_1 + 0x39)" * (cast_expression "(byte *)((long)param_1 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x39)" ( (binary_expression "(long)param_1 + 0x39" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }" { (expression_statement "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;" (assignment_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 4" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal)) ;) (if_statement "if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" if (parenthesized_expression "((bVar6 & 1) == 0)" ( (binary_expression "(bVar6 & 1) == 0" (parenthesized_expression "(bVar6 & 1)" ( (binary_expression "bVar6 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }" { (labeled_statement "LAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) != '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" * (cast_expression "(char *)(lVar15 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }" { (expression_statement "cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);" (assignment_expression "cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29)" identifier = (call_expression "FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29)" identifier (argument_list "(lVar15 + 0x9120,*param_1,0,&local_29)" ( (binary_expression "lVar15 + 0x9120" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , (pointer_expression "&local_29" & identifier) )))) ;) (if_statement "if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }" if (parenthesized_expression "((cVar7 != '\0') && (local_29 == '\0'))" ( (binary_expression "(cVar7 != '\0') && (local_29 == '\0')" (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_29 == '\0')" ( (binary_expression "local_29 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }" { (labeled_statement "LAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);" statement_identifier : (return_statement "return (undefined8 *)(ulong)(uVar19 ^ 1);" return (cast_expression "(undefined8 *)(ulong)(uVar19 ^ 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar19 ^ 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar19 ^ 1)" ( (binary_expression "uVar19 ^ 1" identifier ^ number_literal) )))) ;)) })) (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (expression_statement "puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);" (assignment_expression "puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21)" identifier = (binary_expression "(undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21)" (cast_expression "(undefined8 *)(ulong)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(byte *)(lVar15 + 0xd21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xd21)" ( (binary_expression "lVar15 + 0xd21" identifier + number_literal) ))))) ;) (if_statement "if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }" if (parenthesized_expression "(*(byte *)(lVar15 + 0xd21) == 0)" ( (binary_expression "*(byte *)(lVar15 + 0xd21) == 0" (pointer_expression "*(byte *)(lVar15 + 0xd21)" * (cast_expression "(byte *)(lVar15 + 0xd21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xd21)" ( (binary_expression "lVar15 + 0xd21" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }" { (expression_statement "puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);" (assignment_expression "puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1)" identifier = (cast_expression "(undefined8 *)(ulong)(uVar19 ^ 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar19 ^ 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar19 ^ 1)" ( (binary_expression "uVar19 ^ 1" identifier ^ number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 0xf) != 1)" ( (binary_expression "(*(byte *)(param_1 + 7) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 7) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 7) & 0xf" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }" { (expression_statement "puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));" (assignment_expression "puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" identifier = (cast_expression "(undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" identifier (argument_list "((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" ( (call_expression "(int3)(uVar19 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar19 >> 8)" ( (binary_expression "uVar19 >> 8" identifier >> number_literal) ))) , (binary_expression "(byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9)" (call_expression "(byte)(uVar19 ^ 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 ^ 1)" ( (binary_expression "uVar19 ^ 1" identifier ^ number_literal) ))) | (pointer_expression "*(byte *)(lVar15 + 0xde9)" * (cast_expression "(byte *)(lVar15 + 0xde9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xde9)" ( (binary_expression "lVar15 + 0xde9" identifier + number_literal) ))))) )))))) ;) })) })) })) }) (else_clause "else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" else (compound_statement "{\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" { (expression_statement "puVar12 = (undefined8 *)(ulong)(bVar6 & 1);" (assignment_expression "puVar12 = (undefined8 *)(ulong)(bVar6 & 1)" identifier = (cast_expression "(undefined8 *)(ulong)(bVar6 & 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(bVar6 & 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(bVar6 & 1)" ( (binary_expression "bVar6 & 1" identifier & number_literal) ))))) ;) }))) })) })) (return_statement "return puVar12;" return identifier ;) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }" while (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" ( (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" identifier = (pointer_expression "*(int **)(piVar23 + 2)" * (cast_expression "(int **)(piVar23 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23 + 2)" ( (binary_expression "piVar23 + 2" identifier + number_literal) ))))) , (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }" { (labeled_statement "LAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" statement_identifier : (if_statement "if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" if (parenthesized_expression "(*piVar23 == iVar31)" ( (binary_expression "*piVar23 == iVar31" (pointer_expression "*piVar23" * identifier) == identifier) )) (compound_statement "{\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" { (if_statement "if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }" if (parenthesized_expression "(piVar23[1] != 0xffffffff)" ( (binary_expression "piVar23[1] != 0xffffffff" (subscript_expression "piVar23[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }" { (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));" (assignment_expression "puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" identifier = (cast_expression "(undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" ( (binary_expression "(ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10)" (cast_expression "(ulong)(uint)piVar23[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)piVar23[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar23[1]" identifier [ number_literal ]))) - (pointer_expression "*(long *)(lVar15 + 0x10)" * (cast_expression "(long *)(lVar15 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar31 = (int)puVar13;" (assignment_expression "iVar31 = (int)puVar13" identifier = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00160de8;" goto statement_identifier ;) })) (break_statement "break;" break ;) }))) })) (goto_statement "goto LAB_00160bce;" goto statement_identifier ;) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }" while (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" ( (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" identifier = (pointer_expression "*(int **)(piVar23 + 2)" * (cast_expression "(int **)(piVar23 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23 + 2)" ( (binary_expression "piVar23 + 2" identifier + number_literal) ))))) , (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }" { (labeled_statement "LAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" statement_identifier : (if_statement "if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" if (parenthesized_expression "(iVar9 == *piVar23)" ( (binary_expression "iVar9 == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" { (if_statement "if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }" if (parenthesized_expression "(piVar23[1] != -1)" ( (binary_expression "piVar23[1] != -1" (subscript_expression "piVar23[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }" { (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10)" identifier = (binary_expression "piVar23[1] - *(int *)(lVar15 + 0x10)" (subscript_expression "piVar23[1]" identifier [ number_literal ]) - (pointer_expression "*(int *)(lVar15 + 0x10)" * (cast_expression "(int *)(lVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "puVar13 = extraout_RDX;" (assignment_expression "puVar13 = extraout_RDX" identifier = identifier) ;) (goto_statement "goto LAB_00160c17;" goto statement_identifier ;) })) (break_statement "break;" break ;) }))) })) (goto_statement "goto LAB_00160bce;" goto statement_identifier ;) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }" while (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" ( (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" identifier = (pointer_expression "*(int **)(piVar23 + 2)" * (cast_expression "(int **)(piVar23 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23 + 2)" ( (binary_expression "piVar23 + 2" identifier + number_literal) ))))) , (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }" { (labeled_statement "LAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" statement_identifier : (if_statement "if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" if (parenthesized_expression "(iVar9 == *piVar23)" ( (binary_expression "iVar9 == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" { (expression_statement "iVar9 = piVar23[1];" (assignment_expression "iVar9 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 != -1) goto LAB_00160d4e;" if (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) )) (goto_statement "goto LAB_00160d4e;" goto statement_identifier ;)) (break_statement "break;" break ;) }))) })) (labeled_statement "LAB_00160bce:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");" (call_expression "FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset")" identifier (argument_list "("../../gold/symtab.h",0x1b7,"got_offset")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""got_offset"" " string_content ") ))) ;)) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *\n   gsym, uint r_type, bool is_32bit, Output_section * output_section) */\n\nbool __thiscall\nanon_unknown.dwarf_2330a8::Target_i386::Relocate::should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)\n\n{\n  bool bVar1;\n  General_options *pGVar2;\n  byte bVar3;\n  bool bVar4;\n  undefined7 in_register_00000009;\n  byte bVar5;\n  byte bVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  bool is_global;\n  bool is_global_1;\n  \n  if ((*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2) == 0) {\n    return true;\n  }\n  uVar8 = (int)gsym - 1;\n  bVar3 = 0;\n  if (uVar8 < 0x2b) {\n    bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_;\n  }\n  if (this == (Relocate *)0x0) {\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)0x0);\n    }\n    if (((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~bVar3 & 1 | (byte)r_type);\n  }\n  bVar4 = gold::parameters->doing_static_link_valid_;\n  if (bVar4 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);\n  }\n  if (gold::parameters->doing_static_link_ == false) {\n    bVar5 = this[7].field_0x2 & 7;\n    bVar7 = 0;\n    if ((this[7].field_0x2 & 7) == 0) {\n      iVar9 = *(int *)(this + 3);\n      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;\nLAB_001604b0:\n      bVar6 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar5 == 4) {\nLAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;\n      if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    bVar6 = bVar7;\n    if (bVar5 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((bVar3 & 1) == 0) {\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n    bVar6 = (pGVar2->shared_).value;\n    if (((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))\n    goto LAB_00160470;\n  }\n  else {\n    bVar6 = 0;\nLAB_0016025b:\n    if ((bVar3 & 1) == 0) goto LAB_00160264;\n  }\n  bVar7 = bVar4;\n  if (((bVar3 & 8) == 0) || (this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)) {\n    if ((this[7].field_0x2 & 7) == 0) {\n      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;\n    }\n    else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;\n    if (((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)) {\n      pGVar2 = gold::parameters->options_;\n      if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar4;\n      if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }\n  return (bool)bVar7;\n}\n\n" comment comment comment (function_definition "bool __thiscall\nanon_unknown.dwarf_2330a8::Target_i386::Relocate::should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)\n\n{\n  bool bVar1;\n  General_options *pGVar2;\n  byte bVar3;\n  bool bVar4;\n  undefined7 in_register_00000009;\n  byte bVar5;\n  byte bVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  bool is_global;\n  bool is_global_1;\n  \n  if ((*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2) == 0) {\n    return true;\n  }\n  uVar8 = (int)gsym - 1;\n  bVar3 = 0;\n  if (uVar8 < 0x2b) {\n    bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_;\n  }\n  if (this == (Relocate *)0x0) {\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)0x0);\n    }\n    if (((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~bVar3 & 1 | (byte)r_type);\n  }\n  bVar4 = gold::parameters->doing_static_link_valid_;\n  if (bVar4 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);\n  }\n  if (gold::parameters->doing_static_link_ == false) {\n    bVar5 = this[7].field_0x2 & 7;\n    bVar7 = 0;\n    if ((this[7].field_0x2 & 7) == 0) {\n      iVar9 = *(int *)(this + 3);\n      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;\nLAB_001604b0:\n      bVar6 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar5 == 4) {\nLAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;\n      if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    bVar6 = bVar7;\n    if (bVar5 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((bVar3 & 1) == 0) {\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n    bVar6 = (pGVar2->shared_).value;\n    if (((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))\n    goto LAB_00160470;\n  }\n  else {\n    bVar6 = 0;\nLAB_0016025b:\n    if ((bVar3 & 1) == 0) goto LAB_00160264;\n  }\n  bVar7 = bVar4;\n  if (((bVar3 & 8) == 0) || (this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)) {\n    if ((this[7].field_0x2 & 7) == 0) {\n      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;\n    }\n    else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;\n    if (((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)) {\n      pGVar2 = gold::parameters->options_;\n      if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar4;\n      if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }\n  return (bool)bVar7;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_2330a8::Target_i386::Relocate::" identifier . identifier : : identifier : : identifier : :) (function_declarator "should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)" identifier (parameter_list "(Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)" ( (parameter_declaration "Relocate *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<32> *gsym" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*gsym" * identifier)) , (parameter_declaration "uint r_type" type_identifier identifier) , (parameter_declaration "bool is_32bit" primitive_type identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  General_options *pGVar2;\n  byte bVar3;\n  bool bVar4;\n  undefined7 in_register_00000009;\n  byte bVar5;\n  byte bVar6;\n  byte bVar7;\n  uint uVar8;\n  int iVar9;\n  bool is_global;\n  bool is_global_1;\n  \n  if ((*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2) == 0) {\n    return true;\n  }\n  uVar8 = (int)gsym - 1;\n  bVar3 = 0;\n  if (uVar8 < 0x2b) {\n    bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_;\n  }\n  if (this == (Relocate *)0x0) {\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)0x0);\n    }\n    if (((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~bVar3 & 1 | (byte)r_type);\n  }\n  bVar4 = gold::parameters->doing_static_link_valid_;\n  if (bVar4 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);\n  }\n  if (gold::parameters->doing_static_link_ == false) {\n    bVar5 = this[7].field_0x2 & 7;\n    bVar7 = 0;\n    if ((this[7].field_0x2 & 7) == 0) {\n      iVar9 = *(int *)(this + 3);\n      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;\nLAB_001604b0:\n      bVar6 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar5 == 4) {\nLAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;\n      if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    bVar6 = bVar7;\n    if (bVar5 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((bVar3 & 1) == 0) {\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n    bVar6 = (pGVar2->shared_).value;\n    if (((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))\n    goto LAB_00160470;\n  }\n  else {\n    bVar6 = 0;\nLAB_0016025b:\n    if ((bVar3 & 1) == 0) goto LAB_00160264;\n  }\n  bVar7 = bVar4;\n  if (((bVar3 & 8) == 0) || (this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)) {\n    if ((this[7].field_0x2 & 7) == 0) {\n      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;\n    }\n    else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;\n    if (((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)) {\n      pGVar2 = gold::parameters->options_;\n      if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar4;\n      if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }\n  return (bool)bVar7;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "General_options *pGVar2;" type_identifier (pointer_declarator "*pGVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined7 in_register_00000009;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "bool is_global;" primitive_type identifier ;) (declaration "bool is_global_1;" primitive_type identifier ;) (if_statement "if ((*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2) == 0) {\n    return true;\n  }" if (parenthesized_expression "((*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2) == 0)" ( (binary_expression "(*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2) == 0" (parenthesized_expression "(*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2)" ( (binary_expression "*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70) & 2" (pointer_expression "*(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70)" * (cast_expression "(byte *)(CONCAT71(in_register_00000009,is_32bit) + 0x70)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT71(in_register_00000009,is_32bit) + 0x70)" ( (binary_expression "CONCAT71(in_register_00000009,is_32bit) + 0x70" (call_expression "CONCAT71(in_register_00000009,is_32bit)" identifier (argument_list "(in_register_00000009,is_32bit)" ( identifier , identifier ))) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (expression_statement "uVar8 = (int)gsym - 1;" (assignment_expression "uVar8 = (int)gsym - 1" identifier = (binary_expression "(int)gsym - 1" (cast_expression "(int)gsym" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (if_statement "if (uVar8 < 0x2b) {\n    bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_;\n  }" if (parenthesized_expression "(uVar8 < 0x2b)" ( (binary_expression "uVar8 < 0x2b" identifier < number_literal) )) (compound_statement "{\n    bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_;\n  }" { (expression_statement "bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_;" (assignment_expression "bVar3 = *(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_" identifier = (pointer_expression "*(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_" * (cast_expression "(byte *)&((Parameters *)(ulong)uVar8)[0xebfa].options_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((Parameters *)(ulong)uVar8)[0xebfa].options_" & (field_expression "((Parameters *)(ulong)uVar8)[0xebfa].options_" (subscript_expression "((Parameters *)(ulong)uVar8)[0xebfa]" (parenthesized_expression "((Parameters *)(ulong)uVar8)" ( (cast_expression "(Parameters *)(ulong)uVar8" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) [ number_literal ]) . field_identifier))))) ;) })) (if_statement "if (this == (Relocate *)0x0) {\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)0x0);\n    }\n    if (((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~bVar3 & 1 | (byte)r_type);\n  }" if (parenthesized_expression "(this == (Relocate *)0x0)" ( (binary_expression "this == (Relocate *)0x0" identifier == (cast_expression "(Relocate *)0x0" ( (type_descriptor "Relocate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)0x0);\n    }\n    if (((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~bVar3 & 1 | (byte)r_type);\n  }" { (expression_statement "pGVar2 = gold::parameters->options_;" (field_expression "pGVar2 = gold::parameters->options_" (assignment_expression "pGVar2 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)0x0);\n    }" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)0x0);\n    }" { comment (expression_statement "can_convert_mov_to_lea((Symbol *)0x0);" (call_expression "can_convert_mov_to_lea((Symbol *)0x0)" identifier (argument_list "((Symbol *)0x0)" ( (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (if_statement "if (((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) {\n      return true;\n    }" if (parenthesized_expression "(((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false))" ( (binary_expression "((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)" (parenthesized_expression "((pGVar2->shared_).value == false)" ( (binary_expression "(pGVar2->shared_).value == false" (field_expression "(pGVar2->shared_).value" (parenthesized_expression "(pGVar2->shared_)" ( (field_expression "pGVar2->shared_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar2->pie_).value == false)" ( (binary_expression "(pGVar2->pie_).value == false" (field_expression "(pGVar2->pie_).value" (parenthesized_expression "(pGVar2->pie_)" ( (field_expression "pGVar2->pie_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (return_statement "return (bool)(~bVar3 & 1 | (byte)r_type);" return (cast_expression "(bool)(~bVar3 & 1 | (byte)r_type)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(~bVar3 & 1 | (byte)r_type)" ( (binary_expression "~bVar3 & 1 | (byte)r_type" (binary_expression "~bVar3 & 1" (unary_expression "~bVar3" ~ identifier) & number_literal) | (cast_expression "(byte)r_type" ( (type_descriptor "byte" type_identifier) ) identifier)) ))) ;) })) (expression_statement "bVar4 = gold::parameters->doing_static_link_valid_;" (field_expression "bVar4 = gold::parameters->doing_static_link_valid_" (assignment_expression "bVar4 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (bVar4 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);\n  }" if (parenthesized_expression "(bVar4 == false)" ( (binary_expression "bVar4 == false" identifier == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);\n  }" { comment (labeled_statement "gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);" statement_identifier : (ERROR ":" :) (labeled_statement "Parameters::doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8);" (call_expression "doing_static_link((Parameters *)this,(Parameters *)(ulong)uVar8)" identifier (argument_list "((Parameters *)this,(Parameters *)(ulong)uVar8)" ( (cast_expression "(Parameters *)this" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Parameters *)(ulong)uVar8" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) ;))) })) (if_statement "if (gold::parameters->doing_static_link_ == false) {\n    bVar5 = this[7].field_0x2 & 7;\n    bVar7 = 0;\n    if ((this[7].field_0x2 & 7) == 0) {\n      iVar9 = *(int *)(this + 3);\n      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;\nLAB_001604b0:\n      bVar6 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar5 == 4) {\nLAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;\n      if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    bVar6 = bVar7;\n    if (bVar5 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((bVar3 & 1) == 0) {\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n    bVar6 = (pGVar2->shared_).value;\n    if (((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))\n    goto LAB_00160470;\n  }\n  else {\n    bVar6 = 0;\nLAB_0016025b:\n    if ((bVar3 & 1) == 0) goto LAB_00160264;\n  }" if (parenthesized_expression "(gold::parameters->doing_static_link_ == false)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->doing_static_link_ == false" (field_expression "parameters->doing_static_link_" identifier -> field_identifier) == false) )) (compound_statement "{\n    bVar5 = this[7].field_0x2 & 7;\n    bVar7 = 0;\n    if ((this[7].field_0x2 & 7) == 0) {\n      iVar9 = *(int *)(this + 3);\n      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;\nLAB_001604b0:\n      bVar6 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar5 == 4) {\nLAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;\n      if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    bVar6 = bVar7;\n    if (bVar5 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((bVar3 & 1) == 0) {\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }\n    pGVar2 = gold::parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n    bVar6 = (pGVar2->shared_).value;\n    if (((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))\n    goto LAB_00160470;\n  }" { (expression_statement "bVar5 = this[7].field_0x2 & 7;" (assignment_expression "bVar5 = this[7].field_0x2 & 7" identifier = (binary_expression "this[7].field_0x2 & 7" (field_expression "this[7].field_0x2" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal)) ;) (expression_statement "bVar7 = 0;" (assignment_expression "bVar7 = 0" identifier = number_literal) ;) (if_statement "if ((this[7].field_0x2 & 7) == 0) {\n      iVar9 = *(int *)(this + 3);\n      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;\nLAB_001604b0:\n      bVar6 = 0;\n      goto LAB_0016025b;\n    }" if (parenthesized_expression "((this[7].field_0x2 & 7) == 0)" ( (binary_expression "(this[7].field_0x2 & 7) == 0" (parenthesized_expression "(this[7].field_0x2 & 7)" ( (binary_expression "this[7].field_0x2 & 7" (field_expression "this[7].field_0x2" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar9 = *(int *)(this + 3);\n      bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n      if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;\nLAB_001604b0:\n      bVar6 = 0;\n      goto LAB_0016025b;\n    }" { (expression_statement "iVar9 = *(int *)(this + 3);" (assignment_expression "iVar9 = *(int *)(this + 3)" identifier = (pointer_expression "*(int *)(this + 3)" * (cast_expression "(int *)(this + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 3)" ( (binary_expression "this + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar6 = (byte)this[7].field_0x3 >> 5 & 1;" (assignment_expression "bVar6 = (byte)this[7].field_0x3 >> 5 & 1" identifier = (binary_expression "(byte)this[7].field_0x3 >> 5 & 1" (binary_expression "(byte)this[7].field_0x3 >> 5" (cast_expression "(byte)this[7].field_0x3" ( (type_descriptor "byte" type_identifier) ) (field_expression "this[7].field_0x3" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier)) >> number_literal) & number_literal)) ;) (if_statement "if ((iVar9 == 0) && (bVar6 != 0)) goto LAB_00160229;" if (parenthesized_expression "((iVar9 == 0) && (bVar6 != 0))" ( (binary_expression "(iVar9 == 0) && (bVar6 != 0)" (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00160229;" goto statement_identifier ;)) (labeled_statement "LAB_00160320:\n      if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;" statement_identifier : (if_statement "if (iVar9 != 0xfff1 || bVar6 != 0) goto LAB_00160333;" if (parenthesized_expression "(iVar9 != 0xfff1 || bVar6 != 0)" ( (binary_expression "iVar9 != 0xfff1 || bVar6 != 0" (binary_expression "iVar9 != 0xfff1" identifier != number_literal) || (binary_expression "bVar6 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00160333;" goto statement_identifier ;))) (labeled_statement "LAB_001604b0:\n      bVar6 = 0;" statement_identifier : (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;) })) (if_statement "if (bVar5 == 4) {\nLAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;\n      if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" if (parenthesized_expression "(bVar5 == 4)" ( (binary_expression "bVar5 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;\n      if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" { (labeled_statement "LAB_00160229:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;" statement_identifier : (if_statement "if (gold::parameters->options_ == (General_options *)0x0) goto LAB_001605fc;" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;))) (if_statement "if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;" if (parenthesized_expression "((gold::parameters->options_->shared_).value == false)" ( (binary_expression "(gold::parameters->options_->shared_).value == false" (field_expression "(gold::parameters->options_->shared_).value" (parenthesized_expression "(gold::parameters->options_->shared_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->shared_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) (if_statement "if (bVar5 == 0) {\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(this + 3);\n        bVar6 = (byte)this[7].field_0x3 >> 5 & 1;\n        goto LAB_00160320;\n      }" { (expression_statement "iVar9 = *(int *)(this + 3);" (assignment_expression "iVar9 = *(int *)(this + 3)" identifier = (pointer_expression "*(int *)(this + 3)" * (cast_expression "(int *)(this + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 3)" ( (binary_expression "this + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar6 = (byte)this[7].field_0x3 >> 5 & 1;" (assignment_expression "bVar6 = (byte)this[7].field_0x3 >> 5 & 1" identifier = (binary_expression "(byte)this[7].field_0x3 >> 5 & 1" (binary_expression "(byte)this[7].field_0x3 >> 5" (cast_expression "(byte)this[7].field_0x3" ( (type_descriptor "byte" type_identifier) ) (field_expression "this[7].field_0x3" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier)) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_00160320;" goto statement_identifier ;) })) })) (expression_statement "bVar6 = bVar7;" (assignment_expression "bVar6 = bVar7" identifier = identifier) ;) (if_statement "if (bVar5 == 3) goto LAB_0016025b;" if (parenthesized_expression "(bVar5 == 3)" ( (binary_expression "bVar5 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;)) (labeled_statement "LAB_00160333:\n    if ((bVar3 & 1) == 0) {\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }" statement_identifier : (if_statement "if ((bVar3 & 1) == 0) {\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }" if (parenthesized_expression "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }\n      if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }\n      if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }\n      goto LAB_0016025b;\n    }" { (labeled_statement "LAB_00160470:\n      if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }" statement_identifier : (if_statement "if (((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {\n        return bVar4;\n      }" if (parenthesized_expression "(((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE))" ( (binary_expression "((bVar3 & 8) != 0) && (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)" (parenthesized_expression "((bVar3 & 8) != 0)" ( (binary_expression "(bVar3 & 8) != 0" (parenthesized_expression "(bVar3 & 8)" ( (binary_expression "bVar3 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)" ( (binary_expression "this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE" (field_expression "this[4].local_dynamic_type_" (subscript_expression "this[4]" identifier [ number_literal ]) . field_identifier) != (unary_expression "~LOCAL_DYNAMIC_NONE" ~ identifier)) ))) )) (compound_statement "{\n        return bVar4;\n      }" { (return_statement "return bVar4;" return identifier ;) }))) (if_statement "if ((bVar3 & 0x10) == 0) {\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }" if (parenthesized_expression "((bVar3 & 0x10) == 0)" ( (binary_expression "(bVar3 & 0x10) == 0" (parenthesized_expression "(bVar3 & 0x10)" ( (binary_expression "bVar3 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;\n      }" { (expression_statement "pGVar2 = gold::parameters->options_;" (field_expression "pGVar2 = gold::parameters->options_" (assignment_expression "pGVar2 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if ((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;" if (parenthesized_expression "((((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE))" ( (binary_expression "(((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)) &&\n           (this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)" (parenthesized_expression "(((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false))" ( (binary_expression "((pGVar2->shared_).value == false) && ((pGVar2->pie_).value == false)" (parenthesized_expression "((pGVar2->shared_).value == false)" ( (binary_expression "(pGVar2->shared_).value == false" (field_expression "(pGVar2->shared_).value" (parenthesized_expression "(pGVar2->shared_)" ( (field_expression "pGVar2->shared_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar2->pie_).value == false)" ( (binary_expression "(pGVar2->pie_).value == false" (field_expression "(pGVar2->pie_).value" (parenthesized_expression "(pGVar2->pie_)" ( (field_expression "pGVar2->pie_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) && (parenthesized_expression "(this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)" ( (binary_expression "this[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE" (field_expression "this[4].local_dynamic_type_" (subscript_expression "this[4]" identifier [ number_literal ]) . field_identifier) != (unary_expression "~LOCAL_DYNAMIC_NONE" ~ identifier)) ))) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) })) (if_statement "if (bVar5 == 0) {\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;\n        if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "bVar6 = *(byte *)((long)this[2] + 0x3c) & 1;" (assignment_expression "bVar6 = *(byte *)((long)this[2] + 0x3c) & 1" identifier = (binary_expression "*(byte *)((long)this[2] + 0x3c) & 1" (pointer_expression "*(byte *)((long)this[2] + 0x3c)" * (cast_expression "(byte *)((long)this[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this[2] + 0x3c)" ( (binary_expression "(long)this[2] + 0x3c" (cast_expression "(long)this[2]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "this[2]" identifier [ number_literal ])) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)) {\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0))" ( (binary_expression "((*(byte *)((long)this[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)" (parenthesized_expression "((*(byte *)((long)this[2] + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)this[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)this[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)this[2] + 0x3c) & 1" (pointer_expression "*(byte *)((long)this[2] + 0x3c)" * (cast_expression "(byte *)((long)this[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this[2] + 0x3c)" ( (binary_expression "(long)this[2] + 0x3c" (cast_expression "(long)this[2]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "this[2]" identifier [ number_literal ])) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0)" ( (comma_expression "bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0, bVar6 == 0" (assignment_expression "bVar6 = (byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0" identifier = (binary_expression "(byte)this[7].field_0x3 >> 5 & *(int *)(this + 3) == 0" (binary_expression "(byte)this[7].field_0x3 >> 5" (cast_expression "(byte)this[7].field_0x3" ( (type_descriptor "byte" type_identifier) ) (field_expression "this[7].field_0x3" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier)) >> number_literal) & (binary_expression "*(int *)(this + 3) == 0" (pointer_expression "*(int *)(this + 3)" * (cast_expression "(int *)(this + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 3)" ( (binary_expression "this + 3" identifier + number_literal) )))) == number_literal))) , (binary_expression "bVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_001604f0:\n          bVar6 = bVar7;\n          if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_001604f0:\n          bVar6 = bVar7;" statement_identifier : (expression_statement "bVar6 = bVar7;" (assignment_expression "bVar6 = bVar7" identifier = identifier) ;)) (if_statement "if (((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)) {\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }" if (parenthesized_expression "(((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0))" ( (binary_expression "((this[7].field_0x1 & 3) == 0) && ((this[7].field_0x3 & 0x10) == 0)" (parenthesized_expression "((this[7].field_0x1 & 3) == 0)" ( (binary_expression "(this[7].field_0x1 & 3) == 0" (parenthesized_expression "(this[7].field_0x1 & 3)" ( (binary_expression "this[7].field_0x1 & 3" (field_expression "this[7].field_0x1" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((this[7].field_0x3 & 0x10) == 0)" ( (binary_expression "(this[7].field_0x3 & 0x10) == 0" (parenthesized_expression "(this[7].field_0x3 & 0x10)" ( (binary_expression "this[7].field_0x3 & 0x10" (field_expression "this[7].field_0x3" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            pGVar2 = gold::parameters->options_;\n            if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n            bVar1 = (pGVar2->shared_).value;\n            bVar6 = bVar1;\n            if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }" { (expression_statement "pGVar2 = gold::parameters->options_;" (field_expression "pGVar2 = gold::parameters->options_" (assignment_expression "pGVar2 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (expression_statement "bVar1 = (pGVar2->shared_).value;" (assignment_expression "bVar1 = (pGVar2->shared_).value" identifier = (field_expression "(pGVar2->shared_).value" (parenthesized_expression "(pGVar2->shared_)" ( (field_expression "pGVar2->shared_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar6 = bVar1;" (assignment_expression "bVar6 = bVar1" identifier = identifier) ;) (if_statement "if ((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )) {\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }" if (parenthesized_expression "((bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               ))" ( (binary_expression "(bVar1 != false) &&\n               ((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )" (parenthesized_expression "(bVar1 != false)" ( (binary_expression "bVar1 != false" identifier != false) )) && (parenthesized_expression "((bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))\n               )" ( (parenthesized_expression "(bVar6 = gold::Version_script_info::get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false))" ( (ERROR "bVar6 = gold::Version_script_info::" (assignment_expression "bVar6 = gold" identifier = identifier) : : identifier : :) (comma_expression "get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global), !(bool)bVar6 || (is_global != false)" (call_expression "get_symbol_version\n                                   (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global)" identifier (argument_list "(&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,\n                                    (string *)0x0,&is_global)" ( (pointer_expression "&(pGVar2->dynamic_list_).version_script_info_" & (field_expression "(pGVar2->dynamic_list_).version_script_info_" (parenthesized_expression "(pGVar2->dynamic_list_)" ( (field_expression "pGVar2->dynamic_list_" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(char *)*this" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*this" * identifier)) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_global" & identifier) ))) , (binary_expression "!(bool)bVar6 || (is_global != false)" (unary_expression "!(bool)bVar6" ! (cast_expression "(bool)bVar6" ( (type_descriptor "bool" primitive_type) ) identifier)) || (parenthesized_expression "(is_global != false)" ( (binary_expression "is_global != false" identifier != false) )))) )) ))) )) (compound_statement "{\n              pGVar2 = gold::parameters->options_;\n              if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n              if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;\n              bVar6 = bVar1;\n              if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }\n            }" { (expression_statement "pGVar2 = gold::parameters->options_;" (field_expression "pGVar2 = gold::parameters->options_" (assignment_expression "pGVar2 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if ((pGVar2->Bsymbolic_).value != false) goto LAB_001604b0;" if (parenthesized_expression "((pGVar2->Bsymbolic_).value != false)" ( (binary_expression "(pGVar2->Bsymbolic_).value != false" (field_expression "(pGVar2->Bsymbolic_).value" (parenthesized_expression "(pGVar2->Bsymbolic_)" ( (field_expression "pGVar2->Bsymbolic_" identifier -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) (expression_statement "bVar6 = bVar1;" (assignment_expression "bVar6 = bVar1" identifier = identifier) ;) (if_statement "if ((this[7].skip_call_tls_get_addr_ & 0xfU) != 1) {\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }" if (parenthesized_expression "((this[7].skip_call_tls_get_addr_ & 0xfU) != 1)" ( (binary_expression "(this[7].skip_call_tls_get_addr_ & 0xfU) != 1" (parenthesized_expression "(this[7].skip_call_tls_get_addr_ & 0xfU)" ( (binary_expression "this[7].skip_call_tls_get_addr_ & 0xfU" (field_expression "this[7].skip_call_tls_get_addr_" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;\n              }" { (expression_statement "bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1;" (assignment_expression "bVar6 = (pGVar2->Bsymbolic_functions_).value ^ 1" identifier = (binary_expression "(pGVar2->Bsymbolic_functions_).value ^ 1" (field_expression "(pGVar2->Bsymbolic_functions_).value" (parenthesized_expression "(pGVar2->Bsymbolic_functions_)" ( (field_expression "pGVar2->Bsymbolic_functions_" identifier -> field_identifier) )) . field_identifier) ^ number_literal)) ;) })) })) })) })) }) (else_clause "else {\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }" else (compound_statement "{\n        bVar6 = bVar4;\n        if (bVar5 != 4) goto LAB_001604f0;\n      }" { (expression_statement "bVar6 = bVar4;" (assignment_expression "bVar6 = bVar4" identifier = identifier) ;) (if_statement "if (bVar5 != 4) goto LAB_001604f0;" if (parenthesized_expression "(bVar5 != 4)" ( (binary_expression "bVar5 != 4" identifier != number_literal) )) (goto_statement "goto LAB_001604f0;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;) }))) (expression_statement "pGVar2 = gold::parameters->options_;" (field_expression "pGVar2 = gold::parameters->options_" (assignment_expression "pGVar2 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (expression_statement "bVar6 = (pGVar2->shared_).value;" (assignment_expression "bVar6 = (pGVar2->shared_).value" identifier = (field_expression "(pGVar2->shared_).value" (parenthesized_expression "(pGVar2->shared_)" ( (field_expression "pGVar2->shared_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))\n    goto LAB_00160470;" if (parenthesized_expression "(((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false))" ( (binary_expression "((bool)bVar6 == false) && (bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false)" (parenthesized_expression "((bool)bVar6 == false)" ( (binary_expression "(bool)bVar6 == false" (cast_expression "(bool)bVar6" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) && (parenthesized_expression "(bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false)" ( (comma_expression "bVar6 = (pGVar2->pie_).value, (bool)bVar6 == false" (assignment_expression "bVar6 = (pGVar2->pie_).value" identifier = (field_expression "(pGVar2->pie_).value" (parenthesized_expression "(pGVar2->pie_)" ( (field_expression "pGVar2->pie_" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(bool)bVar6 == false" (cast_expression "(bool)bVar6" ( (type_descriptor "bool" primitive_type) ) identifier) == false)) ))) )) (goto_statement "goto LAB_00160470;" goto statement_identifier ;)) }) (else_clause "else {\n    bVar6 = 0;\nLAB_0016025b:\n    if ((bVar3 & 1) == 0) goto LAB_00160264;\n  }" else (compound_statement "{\n    bVar6 = 0;\nLAB_0016025b:\n    if ((bVar3 & 1) == 0) goto LAB_00160264;\n  }" { (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0016025b:\n    if ((bVar3 & 1) == 0) goto LAB_00160264;" statement_identifier : (if_statement "if ((bVar3 & 1) == 0) goto LAB_00160264;" if (parenthesized_expression "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;))) }))) (expression_statement "bVar7 = bVar4;" (assignment_expression "bVar7 = bVar4" identifier = identifier) ;) (if_statement "if (((bVar3 & 8) == 0) || (this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)) {\n    if ((this[7].field_0x2 & 7) == 0) {\n      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;\n    }\n    else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;\n    if (((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)) {\n      pGVar2 = gold::parameters->options_;\n      if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar4;\n      if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(((bVar3 & 8) == 0) || (this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE))" ( (binary_expression "((bVar3 & 8) == 0) || (this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)" (parenthesized_expression "((bVar3 & 8) == 0)" ( (binary_expression "(bVar3 & 8) == 0" (parenthesized_expression "(bVar3 & 8)" ( (binary_expression "bVar3 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)" ( (binary_expression "this[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE" (field_expression "this[4].local_dynamic_type_" (subscript_expression "this[4]" identifier [ number_literal ]) . field_identifier) == (unary_expression "~LOCAL_DYNAMIC_NONE" ~ identifier)) ))) )) (compound_statement "{\n    if ((this[7].field_0x2 & 7) == 0) {\n      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;\n    }\n    else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;\n    if (((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)) {\n      pGVar2 = gold::parameters->options_;\n      if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar4;\n      if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }" { (if_statement "if ((this[7].field_0x2 & 7) == 0) {\n      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;\n    }\n    else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;" if (parenthesized_expression "((this[7].field_0x2 & 7) == 0)" ( (binary_expression "(this[7].field_0x2 & 7) == 0" (parenthesized_expression "(this[7].field_0x2 & 7)" ( (binary_expression "this[7].field_0x2 & 7" (field_expression "this[7].field_0x2" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;\n    }" { (if_statement "if (((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;" if (parenthesized_expression "(((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0))))" ( (binary_expression "((*(byte *)((long)this[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))" (parenthesized_expression "((*(byte *)((long)this[2] + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)((long)this[2] + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)((long)this[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)this[2] + 0x3c) & 1" (pointer_expression "*(byte *)((long)this[2] + 0x3c)" * (cast_expression "(byte *)((long)this[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)this[2] + 0x3c)" ( (binary_expression "(long)this[2] + 0x3c" (cast_expression "(long)this[2]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "this[2]" identifier [ number_literal ])) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)))" ( (parenthesized_expression "(*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0))" ( (binary_expression "*(int *)(this + 3) == 0 && ((this[7].field_0x3 & 0x20) != 0)" (binary_expression "*(int *)(this + 3) == 0" (pointer_expression "*(int *)(this + 3)" * (cast_expression "(int *)(this + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 3)" ( (binary_expression "this + 3" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "((this[7].field_0x3 & 0x20) != 0)" ( (binary_expression "(this[7].field_0x3 & 0x20) != 0" (parenthesized_expression "(this[7].field_0x3 & 0x20)" ( (binary_expression "this[7].field_0x3 & 0x20" (field_expression "this[7].field_0x3" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;)) }) (else_clause "else if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;" else (if_statement "if ((this[7].field_0x2 & 7) == 4) goto LAB_00160264;" if (parenthesized_expression "((this[7].field_0x2 & 7) == 4)" ( (binary_expression "(this[7].field_0x2 & 7) == 4" (parenthesized_expression "(this[7].field_0x2 & 7)" ( (binary_expression "this[7].field_0x2 & 7" (field_expression "this[7].field_0x2" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;)))) (if_statement "if (((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)) {\n      pGVar2 = gold::parameters->options_;\n      if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar4;\n      if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }\n    }" if (parenthesized_expression "(((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0))" ( (binary_expression "((this[7].field_0x1 & 3) == 0) &&\n       (bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)" (parenthesized_expression "((this[7].field_0x1 & 3) == 0)" ( (binary_expression "(this[7].field_0x1 & 3) == 0" (parenthesized_expression "(this[7].field_0x1 & 3)" ( (binary_expression "this[7].field_0x1 & 3" (field_expression "this[7].field_0x1" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0)" ( (comma_expression "bVar3 = (byte)this[7].field_0x3 >> 4, bVar7 = bVar3 & 1, (bVar3 & 1) == 0" (assignment_expression "bVar3 = (byte)this[7].field_0x3 >> 4" identifier = (binary_expression "(byte)this[7].field_0x3 >> 4" (cast_expression "(byte)this[7].field_0x3" ( (type_descriptor "byte" type_identifier) ) (field_expression "this[7].field_0x3" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier)) >> number_literal)) , (comma_expression "bVar7 = bVar3 & 1, (bVar3 & 1) == 0" (assignment_expression "bVar7 = bVar3 & 1" identifier = (binary_expression "bVar3 & 1" identifier & number_literal)) , (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal))) ))) )) (compound_statement "{\n      pGVar2 = gold::parameters->options_;\n      if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar4;\n      if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }\n    }" { (expression_statement "pGVar2 = gold::parameters->options_;" (field_expression "pGVar2 = gold::parameters->options_" (assignment_expression "pGVar2 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar2 == (General_options *)0x0) {\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_001605fc:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;))) })) (expression_statement "bVar7 = bVar4;" (assignment_expression "bVar7 = bVar4" identifier = identifier) ;) (if_statement "if ((pGVar2->shared_).value != false) {\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }" if (parenthesized_expression "((pGVar2->shared_).value != false)" ( (binary_expression "(pGVar2->shared_).value != false" (field_expression "(pGVar2->shared_).value" (parenthesized_expression "(pGVar2->shared_)" ( (field_expression "pGVar2->shared_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n        bVar4 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);\n        if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }\n        pGVar2 = gold::parameters->options_;\n        if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;\n        bVar7 = (pGVar2->Bsymbolic_).value;\n        if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }\n      }" { (ERROR "bVar4 = gold::" (assignment_expression "bVar4 = gold" identifier = identifier) : :) (labeled_statement "Version_script_info::get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1);" (call_expression "get_symbol_version\n                          (&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1)" identifier (argument_list "(&(pGVar2->dynamic_list_).version_script_info_,(char *)*this,(string *)0x0\n                           ,&is_global_1)" ( (pointer_expression "&(pGVar2->dynamic_list_).version_script_info_" & (field_expression "(pGVar2->dynamic_list_).version_script_info_" (parenthesized_expression "(pGVar2->dynamic_list_)" ( (field_expression "pGVar2->dynamic_list_" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(char *)*this" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*this" * identifier)) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_global_1" & identifier) ))) ;)) (if_statement "if ((bVar4) && (is_global_1 == false)) {\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }" if (parenthesized_expression "((bVar4) && (is_global_1 == false))" ( (binary_expression "(bVar4) && (is_global_1 == false)" (parenthesized_expression "(bVar4)" ( identifier )) && (parenthesized_expression "(is_global_1 == false)" ( (binary_expression "is_global_1 == false" identifier == false) ))) )) (compound_statement "{\nLAB_00160264:\n          return (bool)(bVar6 ^ 1);\n        }" { (labeled_statement "LAB_00160264:\n          return (bool)(bVar6 ^ 1);" statement_identifier : (return_statement "return (bool)(bVar6 ^ 1);" return (cast_expression "(bool)(bVar6 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar6 ^ 1)" ( (binary_expression "bVar6 ^ 1" identifier ^ number_literal) ))) ;)) })) (expression_statement "pGVar2 = gold::parameters->options_;" (field_expression "pGVar2 = gold::parameters->options_" (assignment_expression "pGVar2 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001605fc;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (expression_statement "bVar7 = (pGVar2->Bsymbolic_).value;" (assignment_expression "bVar7 = (pGVar2->Bsymbolic_).value" identifier = (field_expression "(pGVar2->Bsymbolic_).value" (parenthesized_expression "(pGVar2->Bsymbolic_)" ( (field_expression "pGVar2->Bsymbolic_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }" if (parenthesized_expression "(((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1))" ( (binary_expression "((bool)bVar7 == false) &&\n           (bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)" (parenthesized_expression "((bool)bVar7 == false)" ( (binary_expression "(bool)bVar7 == false" (cast_expression "(bool)bVar7" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) && (parenthesized_expression "(bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1)" ( (comma_expression "bVar7 = bVar6 ^ 1, (this[7].skip_call_tls_get_addr_ & 0xfU) != 1" (assignment_expression "bVar7 = bVar6 ^ 1" identifier = (binary_expression "bVar6 ^ 1" identifier ^ number_literal)) , (binary_expression "(this[7].skip_call_tls_get_addr_ & 0xfU) != 1" (parenthesized_expression "(this[7].skip_call_tls_get_addr_ & 0xfU)" ( (binary_expression "this[7].skip_call_tls_get_addr_ & 0xfU" (field_expression "this[7].skip_call_tls_get_addr_" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;\n        }" { (expression_statement "bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value;" (assignment_expression "bVar7 = bVar7 | (pGVar2->Bsymbolic_functions_).value" identifier = (binary_expression "bVar7 | (pGVar2->Bsymbolic_functions_).value" identifier | (field_expression "(pGVar2->Bsymbolic_functions_).value" (parenthesized_expression "(pGVar2->Bsymbolic_functions_)" ( (field_expression "pGVar2->Bsymbolic_functions_" identifier -> field_identifier) )) . field_identifier))) ;) })) })) })) })) (return_statement "return (bool)bVar7;" return (cast_expression "(bool)bVar7" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })))
(translation_unit "undefined8 *\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)\n\n{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    \n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}\n\n" (function_definition "undefined8 *\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)\n\n{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    \n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}" type_identifier (pointer_declarator "*\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" * (function_declarator "FUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" identifier (parameter_list "(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "ulong param_6" type_identifier identifier) )))) (compound_statement "{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    \n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined8 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined8 *extraout_RDX;" type_identifier (pointer_declarator "*extraout_RDX" * identifier) ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "long lVar22;" (sized_type_specifier "long" long) identifier ;) (declaration "long unaff_RBX;" (sized_type_specifier "long" long) identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "uint *unaff_RBP;" type_identifier (pointer_declarator "*unaff_RBP" * identifier) ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "long *plVar25;" (sized_type_specifier "long" long) (pointer_declarator "*plVar25" * identifier) ;) (declaration "long *plVar26;" (sized_type_specifier "long" long) (pointer_declarator "*plVar26" * identifier) ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "undefined8 *unaff_R12;" type_identifier (pointer_declarator "*unaff_R12" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined6 uStack_30;" type_identifier identifier ;) (declaration "char local_2a;" primitive_type identifier ;) (declaration "char local_29;" primitive_type identifier ;) (if_statement "if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }" if (parenthesized_expression "((*(byte *)(param_4 + 0x70) & 2) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0x70) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x70) & 2)" ( (binary_expression "*(byte *)(param_4 + 0x70) & 2" (pointer_expression "*(byte *)(param_4 + 0x70)" * (cast_expression "(byte *)(param_4 + 0x70)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x70)" ( (binary_expression "param_4 + 0x70" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return (undefined8 *)0x1;\n  }" { (return_statement "return (undefined8 *)0x1;" return (cast_expression "(undefined8 *)0x1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uVar24 = (ulong)(param_2 - 1U);" (assignment_expression "uVar24 = (ulong)(param_2 - 1U)" identifier = (call_expression "(ulong)(param_2 - 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2 - 1U)" ( (binary_expression "param_2 - 1U" identifier - number_literal) )))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (if_statement "if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }" if (parenthesized_expression "(param_2 - 1U < 0x2b)" ( (binary_expression "param_2 - 1U < 0x2b" (binary_expression "param_2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }" { (expression_statement "uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];" (assignment_expression "uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24]" identifier = (subscript_expression "(uint)(char)(&DAT_00339ec0)[uVar24]" (call_expression "(uint)(char)(&DAT_00339ec0)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&DAT_00339ec0)" ( (pointer_expression "&DAT_00339ec0" & identifier) ))) [ identifier ])) ;) })) (if_statement "if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }" if (parenthesized_expression "(param_1 == (undefined8 *)0x0)" ( (binary_expression "param_1 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }" { (if_statement "if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }" if (parenthesized_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0'))" ( (binary_expression "(*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')" (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2a61) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" * (cast_expression "(char *)(lVar15 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(lVar15 + 0x42d1) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x42d1) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x42d1)" * (cast_expression "(char *)(lVar15 + 0x42d1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        return (undefined8 *)0x1;\n      }" { (return_statement "return (undefined8 *)0x1;" return (cast_expression "(undefined8 *)0x1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (return_statement "return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);" return (cast_expression "(undefined8 *)(ulong)(~uVar28 & 1 | param_3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(~uVar28 & 1 | param_3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(~uVar28 & 1 | param_3)" ( (binary_expression "~uVar28 & 1 | param_3" (binary_expression "~uVar28 & 1" (unary_expression "~uVar28" ~ identifier) & number_literal) | identifier) )))) ;) })) (expression_statement "FUN_0015d950();" (call_expression "FUN_0015d950()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;) })) (expression_statement "bVar6 = PTR_DAT_003f85c0[0x20];" (assignment_expression "bVar6 = PTR_DAT_003f85c0[0x20]" identifier = (subscript_expression "PTR_DAT_003f85c0[0x20]" identifier [ number_literal ])) ;) (expression_statement "puVar12 = (undefined8 *)(ulong)bVar6;" (assignment_expression "puVar12 = (undefined8 *)(ulong)bVar6" identifier = (cast_expression "(undefined8 *)(ulong)bVar6" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar6" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }" { (expression_statement "FUN_0015d840();" (call_expression "FUN_0015d840()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));" (assignment_expression "lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30))" identifier = (call_expression "CONCAT17(local_29,CONCAT16(local_2a,uStack_30))" identifier (argument_list "(local_29,CONCAT16(local_2a,uStack_30))" ( identifier , (call_expression "CONCAT16(local_2a,uStack_30)" identifier (argument_list "(local_2a,uStack_30)" ( identifier , identifier ))) )))) ;) (expression_statement "puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);" (assignment_expression "puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" * (cast_expression "(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(uVar24 + 8) + 0x2b0)" ( (binary_expression "*(long *)(uVar24 + 8) + 0x2b0" (pointer_expression "*(long *)(uVar24 + 8)" * (cast_expression "(long *)(uVar24 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar24 + 8)" ( (binary_expression "uVar24 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "plVar2 = *(long **)(uVar24 + 0x10);" (assignment_expression "plVar2 = *(long **)(uVar24 + 0x10)" identifier = (pointer_expression "*(long **)(uVar24 + 0x10)" * (cast_expression "(long **)(uVar24 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar24 + 0x10)" ( (binary_expression "uVar24 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" if (parenthesized_expression "((char)*(byte *)(unaff_RBX + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)(unaff_RBX + 0xb) < '\0'" (cast_expression "(char)*(byte *)(unaff_RBX + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(unaff_RBX + 0xb)" * (cast_expression "(byte *)(unaff_RBX + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0xb)" ( (binary_expression "unaff_RBX + 0xb" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }" { (expression_statement "iVar9 = *(int *)(unaff_RBX + 0x10);" (assignment_expression "iVar9 = *(int *)(unaff_RBX + 0x10)" identifier = (pointer_expression "*(int *)(unaff_RBX + 0x10)" * (cast_expression "(int *)(unaff_RBX + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x10)" ( (binary_expression "unaff_RBX + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" else (compound_statement "{\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" { (if_statement "if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }" if (parenthesized_expression "((*(byte *)(unaff_RBX + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(unaff_RBX + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(unaff_RBX + 0xb) & 8)" ( (binary_expression "*(byte *)(unaff_RBX + 0xb) & 8" (pointer_expression "*(byte *)(unaff_RBX + 0xb)" * (cast_expression "(byte *)(unaff_RBX + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0xb)" ( (binary_expression "unaff_RBX + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }" { (expression_statement "FUN_00199900("../../gold/object.h",0x6ab,"value");" (call_expression "FUN_00199900("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ;) })) (expression_statement "puVar3 = *(uint **)(unaff_RBX + 0x10);" (assignment_expression "puVar3 = *(uint **)(unaff_RBX + 0x10)" identifier = (pointer_expression "*(uint **)(unaff_RBX + 0x10)" * (cast_expression "(uint **)(unaff_RBX + 0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_RBX + 0x10)" ( (binary_expression "unaff_RBX + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = (ulong)*puVar3;" (assignment_expression "uVar27 = (ulong)*puVar3" identifier = (binary_expression "(ulong)*puVar3" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "uVar21 = uVar27 % *(ulong *)(puVar3 + 4);" (assignment_expression "uVar21 = uVar27 % *(ulong *)(puVar3 + 4)" identifier = (binary_expression "uVar27 % *(ulong *)(puVar3 + 4)" identifier % (pointer_expression "*(ulong *)(puVar3 + 4)" * (cast_expression "(ulong *)(puVar3 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))))) ;) (expression_statement "plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);" (assignment_expression "plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" identifier = (pointer_expression "*(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" * (cast_expression "(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(puVar3 + 2) + uVar21 * 8)" ( (binary_expression "*(long *)(puVar3 + 2) + uVar21 * 8" (pointer_expression "*(long *)(puVar3 + 2)" * (cast_expression "(long *)(puVar3 + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) + (binary_expression "uVar21 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }" if (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }" { (expression_statement "uVar17 = ((long *)*plVar26)[1];" (assignment_expression "uVar17 = ((long *)*plVar26)[1]" identifier = (subscript_expression "((long *)*plVar26)[1]" (parenthesized_expression "((long *)*plVar26)" ( (cast_expression "(long *)*plVar26" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar4 = (long *)*plVar26;" (assignment_expression "plVar4 = (long *)*plVar26" identifier = (cast_expression "(long *)*plVar26" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier))) ;) (while_statement "while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }" while (parenthesized_expression "(plVar25 = plVar4, uVar27 != uVar17)" ( (comma_expression "plVar25 = plVar4, uVar27 != uVar17" (assignment_expression "plVar25 = plVar4" identifier = identifier) , (binary_expression "uVar27 != uVar17" identifier != identifier)) )) (compound_statement "{\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }" { (expression_statement "plVar4 = (long *)*plVar25;" (assignment_expression "plVar4 = (long *)*plVar25" identifier = (cast_expression "(long *)*plVar25" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar25" * identifier))) ;) (if_statement "if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;" if (parenthesized_expression "((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))" ( (binary_expression "(plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4))" (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4))" ( (comma_expression "uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" (assignment_expression "uVar17 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) , (comma_expression "plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" (assignment_expression "plVar26 = plVar25" identifier = identifier) , (binary_expression "uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" identifier != (binary_expression "uVar17 % *(ulong *)(puVar3 + 4)" identifier % (pointer_expression "*(ulong *)(puVar3 + 4)" * (cast_expression "(ulong *)(puVar3 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))))))) ))) )) (goto_statement "goto LAB_00160b90;" goto statement_identifier ;)) })) (if_statement "if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }" if (parenthesized_expression "(*plVar26 != 0)" ( (binary_expression "*plVar26 != 0" (pointer_expression "*plVar26" * identifier) != number_literal) )) (compound_statement "{\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }" { (expression_statement "iVar9 = *(int *)(*plVar26 + 0x10);" (assignment_expression "iVar9 = *(int *)(*plVar26 + 0x10)" identifier = (pointer_expression "*(int *)(*plVar26 + 0x10)" * (cast_expression "(int *)(*plVar26 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar26 + 0x10)" ( (binary_expression "*plVar26 + 0x10" (pointer_expression "*plVar26" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_0016070c;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);" statement_identifier : (expression_statement "iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);" (assignment_expression "iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" identifier = (call_expression "FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" identifier (argument_list "(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" ( identifier , identifier , (binary_expression "*(uint *)(unaff_RBX + 8) & 0x7ffffff" (pointer_expression "*(uint *)(unaff_RBX + 8)" * (cast_expression "(uint *)(unaff_RBX + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 8)" ( (binary_expression "unaff_RBX + 8" identifier + number_literal) )))) & number_literal) , identifier )))) ;)) }))) (labeled_statement "LAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" statement_identifier : (if_statement "if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }" { (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00161e86;" goto statement_identifier ;)) (expression_statement "bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;" (assignment_expression "bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1" identifier = (binary_expression "*(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1" (pointer_expression "*(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" * (cast_expression "(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) )))) ^ number_literal)) ;) }) (else_clause "else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" else (compound_statement "{\n      bVar6 = FUN_0024abb0(lVar15);\n    }" { (expression_statement "bVar6 = FUN_0024abb0(lVar15);" (assignment_expression "bVar6 = FUN_0024abb0(lVar15)" identifier = (call_expression "FUN_0024abb0(lVar15)" identifier (argument_list "(lVar15)" ( identifier )))) ;) })))) (expression_statement "iVar30 = (int)param_6;" (assignment_expression "iVar30 = (int)param_6" identifier = (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);" (assignment_expression "iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff)" identifier = (call_expression "FUN_0015d860(bVar6,param_6 & 0xffffffff)" identifier (argument_list "(bVar6,param_6 & 0xffffffff)" ( identifier , (binary_expression "param_6 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);" (assignment_expression "puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar30 - 0xfU)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar30 - 0xfU)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar30 - 0xfU)" ( (binary_expression "iVar30 - 0xfU" identifier - number_literal) ))))) ;) (if_statement "if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }" if (parenthesized_expression "(0x19 < iVar30 - 0xfU)" ( (binary_expression "0x19 < iVar30 - 0xfU" number_literal < (binary_expression "iVar30 - 0xfU" identifier - number_literal)) )) (compound_statement "{\n      return puVar10;\n    }" { (return_statement "return puVar10;" return identifier ;) })) (expression_statement "puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);" (assignment_expression "puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" identifier = (cast_expression "(undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (binary_expression "(long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (cast_expression "(long)&switchD_00160746" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_00160746" & identifier)) (ERROR "::switchdataD_00338da4" : : identifier) + (cast_expression "(long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (parenthesized_expression "(&switchD_00160746::switchdataD_00338da4)" ( (ERROR "&switchD_00160746::" (pointer_expression "&switchD_00160746" & identifier) : :) identifier )) [ (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) )))) ;) (switch_statement "switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }" switch (parenthesized_expression "(puVar10)" ( identifier )) (compound_statement "{\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }" { (case_statement "case (undefined8 *)0x0:" case (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) :) (case_statement "case (undefined8 *)0x1:" case (cast_expression "(undefined8 *)0x1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) :) (case_statement "case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;" case (cast_expression "(undefined8 *)0x12" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (compound_statement "{\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }" { (if_statement "if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }" { (labeled_statement "LAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");" statement_identifier : (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" identifier = (call_expression "gettext("unsupported reloc %u")" identifier (argument_list "("unsupported reloc %u")" ( (string_literal ""unsupported reloc %u"" " string_content ") )))) ;)) (expression_statement "param_6 = param_6 & 0xffffffff;" (assignment_expression "param_6 = param_6 & 0xffffffff" identifier = (binary_expression "param_6 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (labeled_statement "LAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);" statement_identifier : (expression_statement "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);" (assignment_expression "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14,param_6)" ( identifier , identifier , identifier , identifier , identifier ))))) ;)) (return_statement "return puVar12;" return identifier ;) })) (expression_statement "iVar9 = (iVar30 == 0x21) + 1;" (assignment_expression "iVar9 = (iVar30 == 0x21) + 1" identifier = (binary_expression "(iVar30 == 0x21) + 1" (parenthesized_expression "(iVar30 == 0x21)" ( (binary_expression "iVar30 == 0x21" identifier == number_literal) )) + number_literal)) ;) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }" { (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" identifier = (cast_expression "(int *)(lVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" identifier = identifier) ;) (do_statement "do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" do (compound_statement "{\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" { (if_statement "if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }" if (parenthesized_expression "(*piVar11 == iVar9)" ( (binary_expression "*piVar11 == iVar9" (pointer_expression "*piVar11" * identifier) == identifier) )) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }" { (if_statement "if (piVar11[1] != -1) goto LAB_00160fd0;" if (parenthesized_expression "(piVar11[1] != -1)" ( (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00160fd0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" identifier = (pointer_expression "*(int **)(piVar11 + 2)" * (cast_expression "(int **)(piVar11 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xcb8,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" identifier = (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" * (cast_expression "(uint *)(*param_5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" ( (pointer_expression "**(code **)(*plVar2 + 0x158)" * (pointer_expression "*(code **)(*plVar2 + 0x158)" * (cast_expression "(code **)(*plVar2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x158)" ( (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }" { (expression_statement "FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xcbe,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);" (assignment_expression "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" ( (pointer_expression "**(code **)(*plVar2 + 0x160)" * (pointer_expression "*(code **)(*plVar2 + 0x160)" * (cast_expression "(code **)(*plVar2 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x160)" ( (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (labeled_statement "LAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" statement_identifier : (if_statement "if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" if (parenthesized_expression "(iVar30 == 0xf)" ( (binary_expression "iVar30 == 0xf" identifier == number_literal) )) (compound_statement "{\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" { (expression_statement "lVar15 = extraout_RDX[6];" (assignment_expression "lVar15 = extraout_RDX[6]" identifier = (subscript_expression "extraout_RDX[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }" { (labeled_statement "LAB_00161ee6:\n            FUN_0015d780();" statement_identifier : (expression_statement "FUN_0015d780();" (call_expression "FUN_0015d780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");" statement_identifier : (expression_statement "FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc0b,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;)) })) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 1" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }" { (expression_statement "FUN_00199900("../../gold/output.h",0xc5,"address");" (call_expression "FUN_00199900("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) (expression_statement "iVar9 = iVar9 + *(int *)(lVar15 + 8);" (assignment_expression "iVar9 = iVar9 + *(int *)(lVar15 + 8)" identifier = (binary_expression "iVar9 + *(int *)(lVar15 + 8)" identifier + (pointer_expression "*(int *)(lVar15 + 8)" * (cast_expression "(int *)(lVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) )))))) ;) }))) (labeled_statement "LAB_00160a52:\n        lVar15 = extraout_RDX[4];" statement_identifier : (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;)) (if_statement "if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }" { (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) != 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) != 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }" { (expression_statement "uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10)" identifier = (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10)" (parenthesized_expression "(iVar9 + *unaff_RBP)" ( (binary_expression "iVar9 + *unaff_RBP" identifier + (pointer_expression "*unaff_RBP" * identifier)) )) - (pointer_expression "*(int *)(lVar15 + 0x10)" * (cast_expression "(int *)(lVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "*unaff_RBP = uVar28;" (assignment_expression "*unaff_RBP = uVar28" (pointer_expression "*unaff_RBP" * identifier) = identifier) ;) (return_statement "return (undefined8 *)(ulong)uVar28;" return (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) })) (labeled_statement "LAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");" statement_identifier : (expression_statement "FUN_00199900("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00199900("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (labeled_statement "LAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");" statement_identifier : (expression_statement "FUN_00199900("../../gold/i386.cc",0x206,"got_size");" (call_expression "FUN_00199900("../../gold/i386.cc",0x206,"got_size")" identifier (argument_list "("../../gold/i386.cc",0x206,"got_size")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""got_size"" " string_content ") ))) ;)) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return puVar12;\n        }" { (return_statement "return puVar12;" return identifier ;) })) (expression_statement "FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xca6,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "iVar8 = *piVar11;" (assignment_expression "iVar8 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" if (parenthesized_expression "(iVar30 == 0xf)" ( (binary_expression "iVar30 == 0xf" identifier == number_literal) )) (compound_statement "{\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 1)" ( (binary_expression "iVar8 - 1" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" if (parenthesized_expression "(bVar6 == 0xa1)" ( (binary_expression "bVar6 == 0xa1" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -1) = 0xb8;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -1) = 0xb8" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -1)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" else (compound_statement "{\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" { (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) == -0x75)" ( (binary_expression "*(char *)((long)unaff_RBP + -2) == -0x75" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }" { (if_statement "if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" if (parenthesized_expression "((bVar6 & 199) != 5)" ( (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 199;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 199" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" else (compound_statement "{\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" { (if_statement "if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != '\x03')" ( (binary_expression "*(char *)((long)unaff_RBP + -2) != '\x03'" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00161683;" goto statement_identifier ;) })) (if_statement "if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" if (parenthesized_expression "((bVar6 & 199) != 5)" ( (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "(byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0" (binary_expression "(byte)((int)(uint)bVar6 >> 3) & 7" (call_expression "(byte)((int)(uint)bVar6 >> 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)(uint)bVar6 >> 3)" ( (binary_expression "(int)(uint)bVar6 >> 3" (cast_expression "(int)(uint)bVar6" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal) | number_literal)) ;) }))) (labeled_statement "LAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar12 + 0x59);" (assignment_expression "iVar8 = *(int *)(puVar12 + 0x59)" identifier = (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0016168e:\n        uVar28 = iVar9 - iVar8;" statement_identifier : (expression_statement "uVar28 = iVar9 - iVar8;" (assignment_expression "uVar28 = iVar9 - iVar8" identifier = (binary_expression "iVar9 - iVar8" identifier - identifier)) ;)) }) (else_clause "else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" else (compound_statement "{\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) })) (expression_statement "iVar8 = *piVar11;" (assignment_expression "iVar8 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "cVar7 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar7 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4))" ( (binary_expression "((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)" (parenthesized_expression "((bVar6 & 0xc0) != 0x80)" ( (binary_expression "(bVar6 & 0xc0) != 0x80" (parenthesized_expression "(bVar6 & 0xc0)" ( (binary_expression "bVar6 & 0xc0" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar6 & 7) == 4)" ( (binary_expression "(bVar6 & 7) == 4" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "bVar6 = (byte)((int)(uint)bVar6 >> 3);" (assignment_expression "bVar6 = (byte)((int)(uint)bVar6 >> 3)" identifier = (call_expression "(byte)((int)(uint)bVar6 >> 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)(uint)bVar6 >> 3)" ( (binary_expression "(int)(uint)bVar6 >> 3" (cast_expression "(int)(uint)bVar6" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) )))) ;) (if_statement "if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(cVar7 == -0x75)" ( (binary_expression "cVar7 == -0x75" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 199;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 199" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;" statement_identifier : (expression_statement "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "bVar6 & 7 | 0xc0" (binary_expression "bVar6 & 7" identifier & number_literal) | number_literal)) ;)) }) (else_clause "else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" else (if_statement "if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(cVar7 == '+')" ( (binary_expression "cVar7 == '+'" identifier == (char_literal "'+'" ' character ')) )) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "bVar6 & 7 | 0xe8" (binary_expression "bVar6 & 7" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" else (compound_statement "{\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (if_statement "if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }" if (parenthesized_expression "(cVar7 == '\x03')" ( (binary_expression "cVar7 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }" { (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00160edd;" goto statement_identifier ;) })) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) }))))) (expression_statement "iVar8 = (int)puVar12[0x59];" (assignment_expression "iVar8 = (int)puVar12[0x59]" identifier = (cast_expression "(int)puVar12[0x59]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar12[0x59]" identifier [ number_literal ]))) ;) (expression_statement "uVar28 = iVar8 - iVar9;" (assignment_expression "uVar28 = iVar8 - iVar9" identifier = (binary_expression "iVar8 - iVar9" identifier - identifier)) ;) (if_statement "if (iVar30 == 0x10) goto LAB_0016168e;" if (parenthesized_expression "(iVar30 == 0x10)" ( (binary_expression "iVar30 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_0016168e;" goto statement_identifier ;)) }))) (expression_statement "*unaff_RBP = *unaff_RBP + uVar28;" (assignment_expression "*unaff_RBP = *unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "*unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) + identifier)) ;) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" identifier = (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;" case (cast_expression "(undefined8 *)0x2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(puVar13 == (undefined8 *)0x0)" ( (binary_expression "puVar13 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }" if (parenthesized_expression "(*(char *)((long)puVar13 + 0x2a61) == '\0')" ( (binary_expression "*(char *)((long)puVar13 + 0x2a61) == '\0'" (pointer_expression "*(char *)((long)puVar13 + 0x2a61)" * (cast_expression "(char *)((long)puVar13 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar13 + 0x2a61)" ( (binary_expression "(long)puVar13 + 0x2a61" (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }" { (expression_statement "puVar13 = *(undefined8 **)PTR_DAT_003f85c0;" (assignment_expression "puVar13 = *(undefined8 **)PTR_DAT_003f85c0" identifier = (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }" if (parenthesized_expression "((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'))" ( (binary_expression "(*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (parenthesized_expression "(*(int *)(puVar13 + 6) < 1)" ( (binary_expression "*(int *)(puVar13 + 6) < 1" (pointer_expression "*(int *)(puVar13 + 6)" * (cast_expression "(int *)(puVar13 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 6)" ( (binary_expression "puVar13 + 6" identifier + number_literal) )))) < number_literal) )) && (parenthesized_expression "(puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" ( (comma_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'" (assignment_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) , (binary_expression "(char)puVar13 == '\0'" (cast_expression "(char)puVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }" { (expression_statement "FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xcd7,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) }) (else_clause "else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" else (compound_statement "{\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" { (expression_statement "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);" (assignment_expression "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (parenthesized_expression "(iVar9 + *unaff_RBP)" ( (binary_expression "iVar9 + *unaff_RBP" identifier + (pointer_expression "*unaff_RBP" * identifier)) )) - (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) )))))) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) }))) })) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;" case (cast_expression "(undefined8 *)0x3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (compound_statement "{\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }" { (expression_statement "iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);" (assignment_expression "iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3)" identifier = (binary_expression "(iVar8 != 3) + 1 + (uint)(iVar8 != 3)" (binary_expression "(iVar8 != 3) + 1" (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) + number_literal) + (call_expression "(uint)(iVar8 != 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }" { (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" identifier = (cast_expression "(int *)(lVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" identifier = identifier) ;) (do_statement "do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" do (compound_statement "{\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" { (if_statement "if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }" if (parenthesized_expression "(*piVar11 == iVar9)" ( (binary_expression "*piVar11 == iVar9" (pointer_expression "*piVar11" * identifier) == identifier) )) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }" { (if_statement "if (piVar11[1] != -1) goto LAB_00160bc0;" if (parenthesized_expression "(piVar11[1] != -1)" ( (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00160bc0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" identifier = (pointer_expression "*(int **)(piVar11 + 2)" * (cast_expression "(int **)(piVar11 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc05,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" identifier = (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" * (cast_expression "(uint *)(*param_5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" ( (pointer_expression "**(code **)(*plVar2 + 0x158)" * (pointer_expression "*(code **)(*plVar2 + 0x158)" * (cast_expression "(code **)(*plVar2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x158)" ( (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto LAB_00161eeb;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00161eeb;" goto statement_identifier ;)) (expression_statement "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);" (assignment_expression "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" ( (pointer_expression "**(code **)(*plVar2 + 0x160)" * (pointer_expression "*(code **)(*plVar2 + 0x160)" * (cast_expression "(code **)(*plVar2 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x160)" ( (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar9,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "uVar28 = iVar9 - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = iVar9 - *(int *)(lVar15 + 0x10)" identifier = (binary_expression "iVar9 - *(int *)(lVar15 + 0x10)" identifier - (pointer_expression "*(int *)(lVar15 + 0x10)" * (cast_expression "(int *)(lVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" identifier = (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (labeled_statement "LAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" statement_identifier : (if_statement "if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" { (if_statement "if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }" { (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" identifier = (call_expression "gettext("unsupported reloc %u")" identifier (argument_list "("unsupported reloc %u")" ( (string_literal ""unsupported reloc %u"" " string_content ") )))) ;) (expression_statement "param_6 = 0x12;" (assignment_expression "param_6 = 0x12" identifier = number_literal) ;) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (goto_statement "goto LAB_00160c4c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00160c26;" goto statement_identifier ;) }))) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 - 2)" ( (binary_expression "iVar9 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 + 9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 + 9)" ( (binary_expression "iVar9 + 9" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" identifier = (cast_expression "(char)unaff_RBP[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_RBP[1]" identifier [ number_literal ]))) ;) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" if (parenthesized_expression "((cVar1 == -0x73) || (cVar1 == '\x04'))" ( (binary_expression "(cVar1 == -0x73) || (cVar1 == '\x04')" (parenthesized_expression "(cVar1 == -0x73)" ( (binary_expression "cVar1 == -0x73" identifier == number_literal) )) || (parenthesized_expression "(cVar1 == '\x04')" ( (binary_expression "cVar1 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }" { (if_statement "if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;" if (parenthesized_expression "(cVar7 != -0x18 && cVar7 != -1)" ( (binary_expression "cVar7 != -0x18 && cVar7 != -1" (binary_expression "cVar7 != -0x18" identifier != number_literal) && (binary_expression "cVar7 != -1" identifier != number_literal)) )) (goto_statement "goto LAB_0016198c;" goto statement_identifier ;)) (labeled_statement "LAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" statement_identifier : (if_statement "if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" if (parenthesized_expression "(cVar1 == '\x04')" ( (binary_expression "cVar1 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 - 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 - 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 - 3)" ( (binary_expression "iVar9 - 3" identifier - number_literal) ))))) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -3) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -3) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -3)" * (cast_expression "(char *)((long)unaff_RBP + -3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -3)" ( (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" if (parenthesized_expression "(((bVar6 & 199) == 5) && (bVar6 != 0x20))" ( (binary_expression "((bVar6 & 199) == 5) && (bVar6 != 0x20)" (parenthesized_expression "((bVar6 & 199) == 5)" ( (binary_expression "(bVar6 & 199) == 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar6 != 0x20)" ( (binary_expression "bVar6 != 0x20" identifier != number_literal) ))) )) (compound_statement "{\n              lVar15 = -3;\n              lVar22 = 5;\n            }" { (expression_statement "lVar15 = -3;" (assignment_expression "lVar15 = -3" identifier = number_literal) ;) (expression_statement "lVar22 = 5;" (assignment_expression "lVar22 = 5" identifier = number_literal) ;) }) (else_clause "else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" else (compound_statement "{\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar15 = -3;" (assignment_expression "lVar15 = -3" identifier = number_literal) ;) (expression_statement "lVar22 = 5;" (assignment_expression "lVar22 = 5" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00161451;" goto statement_identifier ;) }))) }) (else_clause "else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" else (compound_statement "{\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }" if (parenthesized_expression "(cVar7 != -0x18 && cVar7 != -1)" ( (binary_expression "cVar7 != -0x18 && cVar7 != -1" (binary_expression "cVar7 != -0x18" identifier != number_literal) && (binary_expression "cVar7 != -1" identifier != number_literal)) )) (compound_statement "{\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }" { (labeled_statement "LAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");" statement_identifier : (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;)) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (goto_statement "goto LAB_00161589;" goto statement_identifier ;) })) }))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 + 10)" ( (binary_expression "iVar9 + 10" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" if (parenthesized_expression "((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)))))" ( (binary_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))" (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" ( (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" ( (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" ( (binary_expression "bVar6 & 0xf8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar6 & 3) != 0)" ( (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" ( (binary_expression "bVar6 & 3" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))" ( (parenthesized_expression "((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)))" ( (binary_expression "(cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))" (parenthesized_expression "(cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70))" ( (binary_expression "cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)" (binary_expression "cVar7 == -0x18" identifier == number_literal) && (parenthesized_expression "(*(char *)((long)unaff_RBP + 9) == -0x70)" ( (binary_expression "*(char *)((long)unaff_RBP + 9) == -0x70" (pointer_expression "*(char *)((long)unaff_RBP + 9)" * (cast_expression "(char *)((long)unaff_RBP + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 9)" ( (binary_expression "(long)unaff_RBP + 9" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))" ( (binary_expression "(bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) == (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" ( (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" * (cast_expression "(byte *)((long)unaff_RBP + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) ))) ))) )) ))) )) (compound_statement "{\n          lVar15 = -2;\n          lVar22 = 6;\n        }" { (expression_statement "lVar15 = -2;" (assignment_expression "lVar15 = -2" identifier = number_literal) ;) (expression_statement "lVar22 = 6;" (assignment_expression "lVar22 = 6" identifier = number_literal) ;) }) (else_clause "else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" else (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar15 = -2;" (assignment_expression "lVar15 = -2" identifier = number_literal) ;) (expression_statement "lVar22 = 6;" (assignment_expression "lVar22 = 6" identifier = number_literal) ;) }))) (labeled_statement "LAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;" statement_identifier : (expression_statement "*(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;" (assignment_expression "*(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f" (pointer_expression "*(undefined8 *)(lVar15 + (long)unaff_RBP)" * (cast_expression "(undefined8 *)(lVar15 + (long)unaff_RBP)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + (long)unaff_RBP)" ( (binary_expression "lVar15 + (long)unaff_RBP" identifier + (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;" (assignment_expression "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87" (pointer_expression "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" * (cast_expression "(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" ( (binary_expression "(undefined8 *)(lVar15 + (long)unaff_RBP) + 1" (cast_expression "(undefined8 *)(lVar15 + (long)unaff_RBP)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + (long)unaff_RBP)" ( (binary_expression "lVar15 + (long)unaff_RBP" identifier + (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;" (assignment_expression "*(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28" (pointer_expression "*(int *)((long)unaff_RBP + lVar22)" * (cast_expression "(int *)((long)unaff_RBP + lVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar22)" ( (binary_expression "(long)unaff_RBP + lVar22" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(int *)((long)unaff_RBP + lVar22) + uVar28" (pointer_expression "*(int *)((long)unaff_RBP + lVar22)" * (cast_expression "(int *)((long)unaff_RBP + lVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar22)" ( (binary_expression "(long)unaff_RBP + lVar22" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) + identifier)) ;) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return puVar12;\n        }" { (return_statement "return puVar12;" return identifier ;) })) (expression_statement "FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xbf5,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 9)" ( (binary_expression "iVar8 + 9" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" identifier = (cast_expression "(char)unaff_RBP[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_RBP[1]" identifier [ number_literal ]))) ;) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" if (parenthesized_expression "((cVar1 == -0x73) || (cVar1 == '\x04'))" ( (binary_expression "(cVar1 == -0x73) || (cVar1 == '\x04')" (parenthesized_expression "(cVar1 == -0x73)" ( (binary_expression "cVar1 == -0x73" identifier == number_literal) )) || (parenthesized_expression "(cVar1 == '\x04')" ( (binary_expression "cVar1 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }" { (if_statement "if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;" if (parenthesized_expression "(cVar7 != -1 && cVar7 != -0x18)" ( (binary_expression "cVar7 != -1 && cVar7 != -0x18" (binary_expression "cVar7 != -1" identifier != number_literal) && (binary_expression "cVar7 != -0x18" identifier != number_literal)) )) (goto_statement "goto LAB_00161759;" goto statement_identifier ;)) (labeled_statement "LAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;" statement_identifier : (if_statement "if (cVar1 != '\x04') goto LAB_001607f1;" if (parenthesized_expression "(cVar1 != '\x04')" ( (binary_expression "cVar1 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (goto_statement "goto LAB_001607f1;" goto statement_identifier ;))) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 3)" ( (binary_expression "iVar8 - 3" identifier - number_literal) ))))) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(*(char *)((long)unaff_RBP + -3) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -3) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -3)" * (cast_expression "(char *)((long)unaff_RBP + -3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -3)" ( (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(((bVar6 & 199) != 5) || (bVar6 == 0x20))" ( (binary_expression "((bVar6 & 199) != 5) || (bVar6 == 0x20)" (parenthesized_expression "((bVar6 & 199) != 5)" ( (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" ( (binary_expression "bVar6 & 199" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar6 == 0x20)" ( (binary_expression "bVar6 == 0x20" identifier == number_literal) ))) )) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" identifier = number_literal) ;) (expression_statement "*(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -3)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -3)" ( (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 5)" * (cast_expression "(undefined4 *)((long)unaff_RBP + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" else (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }" if (parenthesized_expression "(cVar7 != -1 && cVar7 != -0x18)" ( (binary_expression "cVar7 != -1 && cVar7 != -0x18" (binary_expression "cVar7 != -1" identifier != number_literal) && (binary_expression "cVar7 != -0x18" identifier != number_literal)) )) (compound_statement "{\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }" { (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (labeled_statement "LAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");" statement_identifier : (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;)) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_001614c8;" goto statement_identifier ;) })) (labeled_statement "LAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" statement_identifier : (if_statement "if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" if (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" ( (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" ( (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" ( (binary_expression "bVar6 & 0xf8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar6 & 3) != 0)" ( (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" ( (binary_expression "bVar6 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }" { (if_statement "if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }" if (parenthesized_expression "(cVar7 != -0x18)" ( (binary_expression "cVar7 != -0x18" identifier != number_literal) )) (compound_statement "{\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }" { (if_statement "if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;" if (parenthesized_expression "((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7))" ( (binary_expression "(bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) != (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" ( (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" * (cast_expression "(byte *)((long)unaff_RBP + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) ))) )) (goto_statement "goto LAB_001607ff;" goto statement_identifier ;)) (goto_statement "goto LAB_00160829;" goto statement_identifier ;) })) (labeled_statement "LAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" statement_identifier : (if_statement "if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" if (parenthesized_expression "((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70))" ( (binary_expression "(unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)" (parenthesized_expression "(unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9))" ( (binary_expression "unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)" identifier <= (cast_expression "(undefined8 *)(ulong)(*(int *)*param_5 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(*(int *)*param_5 + 9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(int *)*param_5 + 9)" ( (binary_expression "*(int *)*param_5 + 9" (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) + number_literal) ))))) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + 9) != -0x70)" ( (binary_expression "*(char *)((long)unaff_RBP + 9) != -0x70" (pointer_expression "*(char *)((long)unaff_RBP + 9)" * (cast_expression "(char *)((long)unaff_RBP + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 9)" ( (binary_expression "(long)unaff_RBP + 9" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" { (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;" (assignment_expression "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c" (pointer_expression "*(undefined2 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined2 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;" (assignment_expression "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e" (pointer_expression "*(undefined1 *)(unaff_RBP + 2)" * (cast_expression "(undefined1 *)(unaff_RBP + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBP + 2)" ( (binary_expression "unaff_RBP + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_0016087d;" goto statement_identifier ;) }))) }) (else_clause "else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" else (compound_statement "{\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" { (labeled_statement "LAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;" statement_identifier : (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;)) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;" statement_identifier : (if_statement "if (cVar7 != -1) goto LAB_00160833;" if (parenthesized_expression "(cVar7 != -1)" ( (binary_expression "cVar7 != -1" identifier != number_literal) )) (goto_statement "goto LAB_00160833;" goto statement_identifier ;))) })))) (expression_statement "lVar15 = 6;" (assignment_expression "lVar15 = 6" identifier = number_literal) ;) (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined4 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);" statement_identifier : (expression_statement "*(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);" (assignment_expression "*(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9)" (pointer_expression "*(int *)((long)unaff_RBP + lVar15)" * (cast_expression "(int *)((long)unaff_RBP + lVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar15)" ( (binary_expression "(long)unaff_RBP + lVar15" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9)" (pointer_expression "*(int *)((long)unaff_RBP + lVar15)" * (cast_expression "(int *)((long)unaff_RBP + lVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + lVar15)" ( (binary_expression "(long)unaff_RBP + lVar15" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) + (parenthesized_expression "((int)puVar12[0x59] - iVar9)" ( (binary_expression "(int)puVar12[0x59] - iVar9" (cast_expression "(int)puVar12[0x59]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar12[0x59]" identifier [ number_literal ])) - identifier) )))) ;)) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;" case (cast_expression "(undefined8 *)0x4" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }" if (parenthesized_expression "(*(int *)((long)param_1 + 4) == 1)" ( (binary_expression "*(int *)((long)param_1 + 4) == 1" (pointer_expression "*(int *)((long)param_1 + 4)" * (cast_expression "(int *)((long)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 4)" ( (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }" { (expression_statement "uVar14 = gettext("both SUN and GNU model TLS relocations");" (assignment_expression "uVar14 = gettext("both SUN and GNU model TLS relocations")" identifier = (call_expression "gettext("both SUN and GNU model TLS relocations")" identifier (argument_list "("both SUN and GNU model TLS relocations")" ( (string_literal ""both SUN and GNU model TLS relocations"" " string_content ") )))) ;) (expression_statement "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);" (assignment_expression "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" identifier (argument_list "(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" ( identifier , identifier , (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) , identifier ))))) ;) (return_statement "return puVar12;" return identifier ;) })) (expression_statement "*(undefined4 *)((long)param_1 + 4) = 2;" (assignment_expression "*(undefined4 *)((long)param_1 + 4) = 2" (pointer_expression "*(undefined4 *)((long)param_1 + 4)" * (cast_expression "(undefined4 *)((long)param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 4)" ( (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (compound_statement "{\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }" { (if_statement "if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }" { (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" identifier = (call_expression "gettext("unsupported reloc %u")" identifier (argument_list "("unsupported reloc %u")" ( (string_literal ""unsupported reloc %u"" " string_content ") )))) ;) (expression_statement "param_6 = 0x13;" (assignment_expression "param_6 = 0x13" identifier = number_literal) ;) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (goto_statement "goto LAB_00160c4c;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(extraout_RDX + 0x12);" (assignment_expression "iVar9 = *(int *)(extraout_RDX + 0x12)" identifier = (pointer_expression "*(int *)(extraout_RDX + 0x12)" * (cast_expression "(int *)(extraout_RDX + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_RDX + 0x12)" ( (binary_expression "extraout_RDX + 0x12" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }" if (parenthesized_expression "(iVar9 == -1)" ( (binary_expression "iVar9 == -1" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }" { (expression_statement "FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");" (call_expression "FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry")" identifier (argument_list "("../../gold/i386.cc",0x65a,"got_mod_index_entry")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""got_mod_index_entry"" " string_content ") ))) ;) })) (goto_statement "goto LAB_00160a52;" goto statement_identifier ;) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return puVar12;\n        }" { (return_statement "return puVar12;" return identifier ;) })) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc71,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar9 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar9 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar9 - 2)" ( (binary_expression "iVar9 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" identifier = (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) })) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" identifier = (cast_expression "(char)unaff_RBP[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_RBP[1]" identifier [ number_literal ]))) ;) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" identifier = (pointer_expression "*(byte *)((long)unaff_RBP + -1)" * (cast_expression "(byte *)((long)unaff_RBP + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" identifier = (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" if (parenthesized_expression "((cVar7 == -0x18) || (cVar7 == -1))" ( (binary_expression "(cVar7 == -0x18) || (cVar7 == -1)" (parenthesized_expression "(cVar7 == -0x18)" ( (binary_expression "cVar7 == -0x18" identifier == number_literal) )) || (parenthesized_expression "(cVar7 == -1)" ( (binary_expression "cVar7 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        iVar8 = (cVar7 != -0x18) + 9;\n      }" { (expression_statement "iVar8 = (cVar7 != -0x18) + 9;" (assignment_expression "iVar8 = (cVar7 != -0x18) + 9" identifier = (binary_expression "(cVar7 != -0x18) + 9" (parenthesized_expression "(cVar7 != -0x18)" ( (binary_expression "cVar7 != -0x18" identifier != number_literal) )) + number_literal)) ;) }) (else_clause "else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" else (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) }))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)" identifier < (cast_expression "(undefined8 *)(ulong)(uint)(iVar8 + iVar9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uint)(iVar8 + iVar9)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) ))))) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }" if (parenthesized_expression "(cVar1 != -0x73)" ( (binary_expression "cVar1 != -0x73" identifier != number_literal) )) (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }" { (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" identifier (argument_list "(uVar24,param_4,iVar9,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" if (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" ( (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" ( (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" ( (binary_expression "bVar6 & 0xf8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar6 & 3) != 0)" ( (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" ( (binary_expression "bVar6 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }" { (if_statement "if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }" if (parenthesized_expression "(cVar7 != -0x18)" ( (binary_expression "cVar7 != -0x18" identifier != number_literal) )) (compound_statement "{\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }" { (if_statement "if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" if (parenthesized_expression "((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7))" ( (binary_expression "(bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" ( (binary_expression "bVar6 & 7" identifier & number_literal) )) != (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" ( (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" * (cast_expression "(byte *)((long)unaff_RBP + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 5)" ( (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) ))) )) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_001610d7;" goto statement_identifier ;) })) (labeled_statement "LAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;" statement_identifier : (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;" (assignment_expression "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93" (pointer_expression "*(undefined2 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined2 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;" (assignment_expression "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d95" (pointer_expression "*(undefined1 *)(unaff_RBP + 2)" * (cast_expression "(undefined1 *)(unaff_RBP + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBP + 2)" ( (binary_expression "unaff_RBP + 2" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" else (compound_statement "{\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (cVar7 == -0x18) goto LAB_00161808;" if (parenthesized_expression "(cVar7 == -0x18)" ( (binary_expression "cVar7 == -0x18" identifier == number_literal) )) (goto_statement "goto LAB_00161808;" goto statement_identifier ;)) (labeled_statement "LAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;" statement_identifier : (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 6)" * (cast_expression "(undefined4 *)((long)unaff_RBP + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 6)" ( (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" * (cast_expression "(undefined1 *)param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;" case (cast_expression "(undefined8 *)0x11" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);" (assignment_expression "puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" identifier = (cast_expression "(undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" ( (binary_expression "(long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (cast_expression "(long)&switchD_00160746" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_00160746" & identifier)) (ERROR "::switchdataD_00338da4" : : identifier) + (cast_expression "(long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (parenthesized_expression "(&switchD_00160746::switchdataD_00338da4)" ( (ERROR "&switchD_00160746::" (pointer_expression "&switchD_00160746" & identifier) : :) identifier )) [ (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ])))) )))) ;) (if_statement "if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }" if (parenthesized_expression "((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0))" ( (binary_expression "(iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)" (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) && (parenthesized_expression "(puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)" ( (comma_expression "puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0" (assignment_expression "puVar10 = *(undefined8 **)(uVar24 + 0x38)" identifier = (pointer_expression "*(undefined8 **)(uVar24 + 0x38)" * (cast_expression "(undefined8 **)(uVar24 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar24 + 0x38)" ( (binary_expression "uVar24 + 0x38" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0" (parenthesized_expression "(*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4)" ( (binary_expression "*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4" (pointer_expression "*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1)" * (cast_expression "(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(uVar24 + 0x38) + 1)" ( (binary_expression "*(undefined8 **)(uVar24 + 0x38) + 1" (pointer_expression "*(undefined8 **)(uVar24 + 0x38)" * (cast_expression "(undefined8 **)(uVar24 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar24 + 0x38)" ( (binary_expression "uVar24 + 0x38" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n            return puVar12;\n          }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return puVar12;\n          }" { (return_statement "return puVar12;" return identifier ;) })) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc95,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar9 = iVar9 - *(int *)(puVar12 + 0x59);" (assignment_expression "iVar9 = iVar9 - *(int *)(puVar12 + 0x59)" identifier = (binary_expression "iVar9 - *(int *)(puVar12 + 0x59)" identifier - (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) )))))) ;) (expression_statement "puVar10 = puVar12;" (assignment_expression "puVar10 = puVar12" identifier = identifier) ;) })) (expression_statement "*unaff_RBP = *unaff_RBP + iVar9;" (assignment_expression "*unaff_RBP = *unaff_RBP + iVar9" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "*unaff_RBP + iVar9" (pointer_expression "*unaff_RBP" * identifier) + identifier)) ;) (return_statement "return puVar10;" return identifier ;)) (case_statement "case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;" case (cast_expression "(undefined8 *)0x13" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;" if (parenthesized_expression "(puVar13 == (undefined8 *)0x0)" ( (binary_expression "puVar13 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00161e86;" goto statement_identifier ;)) (if_statement "if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }" if (parenthesized_expression "(*(char *)((long)puVar13 + 0x2a61) == '\0')" ( (binary_expression "*(char *)((long)puVar13 + 0x2a61) == '\0'" (pointer_expression "*(char *)((long)puVar13 + 0x2a61)" * (cast_expression "(char *)((long)puVar13 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar13 + 0x2a61)" ( (binary_expression "(long)puVar13 + 0x2a61" (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }" { (expression_statement "puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);" (assignment_expression "puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" identifier = (binary_expression "(undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (cast_expression "(undefined8 *)(ulong)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (binary_expression "*(long *)PTR_DAT_003f85c0 + 0x30" (pointer_expression "*(long *)PTR_DAT_003f85c0" * (cast_expression "(long *)PTR_DAT_003f85c0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }" if (parenthesized_expression "(((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'))" ( (binary_expression "((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (parenthesized_expression "((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1)" ( (binary_expression "(int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1" (cast_expression "(int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" * (cast_expression "(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)PTR_DAT_003f85c0 + 0x30)" ( (binary_expression "*(long *)PTR_DAT_003f85c0 + 0x30" (pointer_expression "*(long *)PTR_DAT_003f85c0" * (cast_expression "(long *)PTR_DAT_003f85c0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) < number_literal) )) && (parenthesized_expression "(puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" ( (comma_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'" (assignment_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) , (binary_expression "(char)puVar13 == '\0'" (cast_expression "(char)puVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }" { (expression_statement "FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xce7,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) }) (else_clause "else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" else (compound_statement "{\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" { (expression_statement "uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;" (assignment_expression "uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9" identifier = (binary_expression "(*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9" (parenthesized_expression "(*unaff_RBP + *(int *)(puVar12 + 0x59))" ( (binary_expression "*unaff_RBP + *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" * identifier) + (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) ))))) )) - identifier)) ;) (expression_statement "*unaff_RBP = uVar28;" (assignment_expression "*unaff_RBP = uVar28" (pointer_expression "*unaff_RBP" * identifier) = identifier) ;) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" identifier = (cast_expression "(undefined8 *)(ulong)uVar28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))) })) (break_statement "break;" break ;)) (case_statement "case (undefined8 *)0x18:" case (cast_expression "(undefined8 *)0x18" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) :) (case_statement "case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" case (cast_expression "(undefined8 *)0x19" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "*(undefined4 *)((long)param_1 + 4) = 2;" (assignment_expression "*(undefined4 *)((long)param_1 + 4) = 2" (pointer_expression "*(undefined4 *)((long)param_1 + 4)" * (cast_expression "(undefined4 *)((long)param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 4)" ( (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }" { (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }" { (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" if (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" ( (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" number_literal < (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" * (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" ( (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) + number_literal) ))))) )) (compound_statement "{\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" { (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" return (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" * (cast_expression "(undefined8 **)PTR_DAT_003f85c0" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" identifier = (cast_expression "(undefined8 *)FUN_00169320(lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00169320(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (if_statement "if ((char)puVar12 != '\0') {\n            return puVar12;\n          }" if (parenthesized_expression "((char)puVar12 != '\0')" ( (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return puVar12;\n          }" { (return_statement "return puVar12;" return identifier ;) })) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc2a,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }" if (parenthesized_expression "(iVar30 == 0x27)" ( (binary_expression "iVar30 == 0x27" identifier == number_literal) )) (compound_statement "{\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }" { (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" if (parenthesized_expression "((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d))" ( (binary_expression "(*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)" (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -2) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + -1) != -0x7d)" ( (binary_expression "*(char *)((long)unaff_RBP + -1) != -0x7d" (pointer_expression "*(char *)((long)unaff_RBP + -1)" * (cast_expression "(char *)((long)unaff_RBP + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -1) = 5;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -1) = 5" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -1)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);" (assignment_expression "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (parenthesized_expression "(iVar9 + *unaff_RBP)" ( (binary_expression "iVar9 + *unaff_RBP" identifier + (pointer_expression "*unaff_RBP" * identifier)) )) - (pointer_expression "*(int *)(puVar12 + 0x59)" * (cast_expression "(int *)(puVar12 + 0x59)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x59)" ( (binary_expression "puVar12 + 0x59" identifier + number_literal) )))))) ;) (return_statement "return puVar12;" return identifier ;) })) (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 2);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 2)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar8 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 2)" ( (binary_expression "iVar8 + 2" identifier + number_literal) ))))) ;) (if_statement "if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" if (parenthesized_expression "(unaff_R12 < puVar13)" ( (binary_expression "unaff_R12 < puVar13" identifier < identifier) )) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (labeled_statement "LAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" statement_identifier : (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;)) })) (labeled_statement "LAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" statement_identifier : (if_statement "if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" if (parenthesized_expression "(((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10'))" ( (binary_expression "((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')" (parenthesized_expression "((char)*unaff_RBP != -1)" ( (binary_expression "(char)*unaff_RBP != -1" (cast_expression "(char)*unaff_RBP" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*unaff_RBP" * identifier)) != number_literal) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + 1) != '\x10')" ( (binary_expression "*(char *)((long)unaff_RBP + 1) != '\x10'" (pointer_expression "*(char *)((long)unaff_RBP + 1)" * (cast_expression "(char *)((long)unaff_RBP + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + 1)" ( (binary_expression "(long)unaff_RBP + 1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\x10'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;) }))) (expression_statement "*(undefined2 *)unaff_RBP = 0x9066;" (assignment_expression "*(undefined2 *)unaff_RBP = 0x9066" (pointer_expression "*(undefined2 *)unaff_RBP" * (cast_expression "(undefined2 *)unaff_RBP" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" else (compound_statement "{\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" { (if_statement "if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" if (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) (compound_statement "{\n          iVar31 = 1;\n          iVar9 = 0;\n        }" { (expression_statement "iVar31 = 1;" (assignment_expression "iVar31 = 1" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" else (if_statement "if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" if (parenthesized_expression "((iVar30 == 0x27) && (iVar8 == 0))" ( (binary_expression "(iVar30 == 0x27) && (iVar8 == 0)" (parenthesized_expression "(iVar30 == 0x27)" ( (binary_expression "iVar30 == 0x27" identifier == number_literal) )) && (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }" { (expression_statement "lVar22 = extraout_RDX[4];" (assignment_expression "lVar22 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar22 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar22 == 0)" ( (binary_expression "lVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar22 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar22 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar22 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar22 + 0x20) & 2" (pointer_expression "*(byte *)(lVar22 + 0x20)" * (cast_expression "(byte *)(lVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar22 + 0x20)" ( (binary_expression "lVar22 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "lVar5 = extraout_RDX[6];" (assignment_expression "lVar5 = extraout_RDX[6]" identifier = (subscript_expression "extraout_RDX[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar5 == 0) goto LAB_00161ee6;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161ee6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar5 + 0x20) & 2" (pointer_expression "*(byte *)(lVar5 + 0x20)" * (cast_expression "(byte *)(lVar5 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);" (assignment_expression "iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10)" identifier = (binary_expression "(int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10)" (cast_expression "(int)*(undefined8 *)(lVar22 + 0x10)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(undefined8 *)(lVar22 + 0x10)" * (cast_expression "(undefined8 *)(lVar22 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar22 + 0x10)" ( (binary_expression "lVar22 + 0x10" identifier + number_literal) ))))) + (pointer_expression "*(int *)(lVar5 + 0x10)" * (cast_expression "(int *)(lVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" identifier = number_literal) ;) }) (else_clause "else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" else (compound_statement "{\n          iVar31 = 4;\n          iVar9 = 0;\n        }" { (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }))))) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }" { (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" identifier = (cast_expression "(int *)(lVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" identifier = identifier) ;) (do_statement "do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" do (compound_statement "{\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" { (if_statement "if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }" if (parenthesized_expression "(*piVar11 == iVar31)" ( (binary_expression "*piVar11 == iVar31" (pointer_expression "*piVar11" * identifier) == identifier) )) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }" { (if_statement "if (piVar11[1] != -1) goto LAB_00160da0;" if (parenthesized_expression "(piVar11[1] != -1)" ( (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00160da0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" identifier = (pointer_expression "*(int **)(piVar11 + 2)" * (cast_expression "(int **)(piVar11 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc43,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" identifier = (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" * (cast_expression "(uint *)(*param_5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" ( (pointer_expression "**(code **)(*plVar2 + 0x158)" * (pointer_expression "*(code **)(*plVar2 + 0x158)" * (cast_expression "(code **)(*plVar2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x158)" ( (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar31,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }" { (expression_statement "FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls")" identifier (argument_list "("../../gold/i386.cc",0xc49,"relocate_tls")" ( (string_literal ""../../gold/i386.cc"" " string_content ") , number_literal , (string_literal ""relocate_tls"" " string_content ") ))) ;) })) (expression_statement "uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);" (assignment_expression "uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0)" identifier = (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" ( (pointer_expression "**(code **)(*plVar2 + 0x160)" * (pointer_expression "*(code **)(*plVar2 + 0x160)" * (cast_expression "(code **)(*plVar2 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x160)" ( (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,uVar28,iVar31,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));" (assignment_expression "puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10))" identifier = (cast_expression "(undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uVar28 - *(long *)(lVar15 + 0x10))" ( (binary_expression "(ulong)uVar28 - *(long *)(lVar15 + 0x10)" (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) - (pointer_expression "*(long *)(lVar15 + 0x10)" * (cast_expression "(long *)(lVar15 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar31 = (int)puVar13;" (assignment_expression "iVar31 = (int)puVar13" identifier = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_00160de8:\n        uVar28 = iVar9 + iVar31;" statement_identifier : (expression_statement "uVar28 = iVar9 + iVar31;" (assignment_expression "uVar28 = iVar9 + iVar31" identifier = (binary_expression "iVar9 + iVar31" identifier + identifier)) ;)) (if_statement "if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" if (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) (compound_statement "{\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }" { (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (if_statement "if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }" if (parenthesized_expression "(iVar30 != 0x27)" ( (binary_expression "iVar30 != 0x27" identifier != number_literal) )) (compound_statement "{\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }" { (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 2);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 2)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar8 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 2)" ( (binary_expression "iVar8 + 2" identifier + number_literal) ))))) ;) (if_statement "if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }" if (parenthesized_expression "(unaff_R12 < puVar13)" ( (binary_expression "unaff_R12 < puVar13" identifier < identifier) )) (compound_statement "{\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (goto_statement "goto LAB_00161333;" goto statement_identifier ;) })) (goto_statement "goto LAB_00160f46;" goto statement_identifier ;) })) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" if (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" ( (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" identifier < (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 - 2)" ( (binary_expression "iVar8 - 2" identifier - number_literal) ))))) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" identifier = (pointer_expression "*(int *)*param_5" * (cast_expression "(int *)*param_5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) })) (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 4);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 4)" identifier = (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" if (parenthesized_expression "(unaff_R12 < puVar13)" ( (binary_expression "unaff_R12 < puVar13" identifier < identifier) )) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" { (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" identifier = (call_expression "gettext("TLS relocation out of range")" identifier (argument_list "("TLS relocation out of range")" ( (string_literal ""TLS relocation out of range"" " string_content ") )))) ;) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" identifier (argument_list "(uVar24,param_4,iVar8,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;) })) (if_statement "if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" if (parenthesized_expression "((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d))" ( (binary_expression "(*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)" (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != -0x73)" ( (binary_expression "*(char *)((long)unaff_RBP + -2) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -2)" * (cast_expression "(char *)((long)unaff_RBP + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)((long)unaff_RBP + -1) != -0x7d)" ( (binary_expression "*(char *)((long)unaff_RBP + -1) != -0x7d" (pointer_expression "*(char *)((long)unaff_RBP + -1)" * (cast_expression "(char *)((long)unaff_RBP + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -1)" ( (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" { (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" identifier = (pointer_expression "*(undefined4 *)*param_5" * (cast_expression "(undefined4 *)*param_5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier)))) ;) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" identifier = (call_expression "gettext("TLS relocation against invalid instruction")" identifier (argument_list "("TLS relocation against invalid instruction")" ( (string_literal ""TLS relocation against invalid instruction"" " string_content ") )))) ;) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier = (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" identifier (argument_list "(uVar24,param_4,uVar20,uVar14)" ( identifier , identifier , identifier , identifier ))))) ;) })) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x8b;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x8b" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" * (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)unaff_RBP + -2)" ( (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" else (compound_statement "{\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" { (if_statement "if (iVar8 != 0) goto LAB_00160e10;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00160e10;" goto statement_identifier ;)) (if_statement "if (iVar30 != 0x27) {\n            return puVar13;\n          }" if (parenthesized_expression "(iVar30 != 0x27)" ( (binary_expression "iVar30 != 0x27" identifier != number_literal) )) (compound_statement "{\n            return puVar13;\n          }" { (return_statement "return puVar13;" return identifier ;) })) }))) (labeled_statement "LAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;" statement_identifier : (expression_statement "*unaff_RBP = *unaff_RBP + uVar28;" (assignment_expression "*unaff_RBP = *unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) = (binary_expression "*unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" * identifier) + identifier)) ;)) })))) })) (return_statement "return puVar13;" return identifier ;) })) (expression_statement "uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];" (assignment_expression "uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21]" identifier = (cast_expression "(uint)(byte)PTR_DAT_003f85c0[0x21]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR_DAT_003f85c0[0x21]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR_DAT_003f85c0[0x21]" identifier [ number_literal ])))) ;) (if_statement "if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" if (parenthesized_expression "(PTR_DAT_003f85c0[0x21] == 0)" ( (binary_expression "PTR_DAT_003f85c0[0x21] == 0" (subscript_expression "PTR_DAT_003f85c0[0x21]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }" { (expression_statement "bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;" (assignment_expression "bVar18 = *(byte *)((long)param_1 + 0x3a) & 7" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }" { (expression_statement "iVar9 = *(int *)(param_1 + 3);" (assignment_expression "iVar9 = *(int *)(param_1 + 3)" identifier = (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;" if (parenthesized_expression "((iVar9 == 0) && (bVar16 != 0))" ( (binary_expression "(iVar9 == 0) && (bVar16 != 0)" (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00160229;" goto statement_identifier ;)) (labeled_statement "LAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;" statement_identifier : (if_statement "if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;" if (parenthesized_expression "(iVar9 != 0xfff1 || bVar16 != 0)" ( (binary_expression "iVar9 != 0xfff1 || bVar16 != 0" (binary_expression "iVar9 != 0xfff1" identifier != number_literal) || (binary_expression "bVar16 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00160333;" goto statement_identifier ;))) (labeled_statement "LAB_001604b0:\n      uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;) })) (if_statement "if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" if (parenthesized_expression "(bVar18 == 4)" ( (binary_expression "bVar18 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" { (labeled_statement "LAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;" statement_identifier : (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) (if_statement "if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }" if (parenthesized_expression "(bVar18 == 0)" ( (binary_expression "bVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 3);" (assignment_expression "iVar9 = *(int *)(param_1 + 3)" identifier = (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_00160320;" goto statement_identifier ;) })) })) (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" identifier = identifier) ;) (if_statement "if (bVar18 == 3) goto LAB_0016025b;" if (parenthesized_expression "(bVar18 == 3)" ( (binary_expression "bVar18 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;)) (labeled_statement "LAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" statement_identifier : (if_statement "if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" if (parenthesized_expression "((uVar28 & 1) == 0)" ( (binary_expression "(uVar28 & 1) == 0" (parenthesized_expression "(uVar28 & 1)" ( (binary_expression "uVar28 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" { (labeled_statement "LAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }" statement_identifier : (if_statement "if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }" if (parenthesized_expression "(((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1))" ( (binary_expression "((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)" (parenthesized_expression "((uVar28 & 8) != 0)" ( (binary_expression "(uVar28 & 8) != 0" (parenthesized_expression "(uVar28 & 8)" ( (binary_expression "uVar28 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)((long)param_1 + 0x24) != -1)" ( (binary_expression "*(int *)((long)param_1 + 0x24) != -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" * (cast_expression "(int *)((long)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        return puVar12;\n      }" { (return_statement "return puVar12;" return identifier ;) }))) (if_statement "if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }" if (parenthesized_expression "((uVar28 & 0x10) == 0)" ( (binary_expression "(uVar28 & 0x10) == 0" (parenthesized_expression "(uVar28 & 0x10)" ( (binary_expression "uVar28 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;" if (parenthesized_expression "(((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1))" ( (binary_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)" (parenthesized_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0'))" ( (binary_expression "(*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')" (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2a61) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" * (cast_expression "(char *)(lVar15 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(lVar15 + 0x42d1) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x42d1) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x42d1)" * (cast_expression "(char *)(lVar15 + 0x42d1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(int *)((long)param_1 + 0x24) != -1)" ( (binary_expression "*(int *)((long)param_1 + 0x24) != -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" * (cast_expression "(int *)((long)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) })) (if_statement "if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" if (parenthesized_expression "(bVar18 == 0)" ( (binary_expression "bVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;" (assignment_expression "uVar19 = *(byte *)(param_1[2] + 0x3c) & 1" identifier = (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" * (cast_expression "(byte *)(param_1[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x3c)" ( (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0))" ( (binary_expression "((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)" (parenthesized_expression "((*(byte *)(param_1[2] + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" * (cast_expression "(byte *)(param_1[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x3c)" ( (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)" ( (comma_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0" (assignment_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & (binary_expression "*(int *)(param_1 + 3) == 0" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) == number_literal))) , (comma_expression "uVar19 = (uint)bVar6, bVar6 == 0" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) , (binary_expression "bVar6 == 0" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_001604f0:\n          uVar19 = uVar29;" statement_identifier : (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" identifier = identifier) ;)) (if_statement "if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }" if (parenthesized_expression "(((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0))" ( (binary_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x39) & 3)" ( (binary_expression "*(byte *)((long)param_1 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_1 + 0x39)" * (cast_expression "(byte *)((long)param_1 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x39)" ( (binary_expression "(long)param_1 + 0x39" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3b) & 0x10)" ( (binary_expression "*(byte *)((long)param_1 + 0x3b) & 0x10" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (expression_statement "bVar6 = *(byte *)(lVar15 + 0x2a61);" (assignment_expression "bVar6 = *(byte *)(lVar15 + 0x2a61)" identifier = (pointer_expression "*(byte *)(lVar15 + 0x2a61)" * (cast_expression "(byte *)(lVar15 + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }" if (parenthesized_expression "((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0'))))" ( (binary_expression "(bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))" (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))" ( (parenthesized_expression "(uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0'))" ( (comma_expression "uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')" (assignment_expression "uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a)" identifier = (call_expression "FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a)" identifier (argument_list "(lVar15 + 0x9120,*param_1,0,&local_2a)" ( (binary_expression "lVar15 + 0x9120" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , (pointer_expression "&local_2a" & identifier) )))) , (binary_expression "(char)uVar19 == '\0'\n                || (local_2a != '\0')" (binary_expression "(char)uVar19 == '\0'" (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(local_2a != '\0')" ( (binary_expression "local_2a != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) (compound_statement "{\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;" if (parenthesized_expression "(*(char *)(lVar15 + 0xd21) != '\0')" ( (binary_expression "*(char *)(lVar15 + 0xd21) != '\0'" (pointer_expression "*(char *)(lVar15 + 0xd21)" * (cast_expression "(char *)(lVar15 + 0xd21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xd21)" ( (binary_expression "lVar15 + 0xd21" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001604b0;" goto statement_identifier ;)) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 0xf) != 1)" ( (binary_expression "(*(byte *)(param_1 + 7) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 7) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 7) & 0xf" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }" { (expression_statement "uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;" (assignment_expression "uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1" identifier = (binary_expression "*(byte *)(lVar15 + 0xde9) ^ 1" (pointer_expression "*(byte *)(lVar15 + 0xde9)" * (cast_expression "(byte *)(lVar15 + 0xde9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xde9)" ( (binary_expression "lVar15 + 0xde9" identifier + number_literal) )))) ^ number_literal)) ;) })) })) })) })) }) (else_clause "else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" else (compound_statement "{\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" { (if_statement "if (bVar18 != 4) goto LAB_001604f0;" if (parenthesized_expression "(bVar18 != 4)" ( (binary_expression "bVar18 != 4" identifier != number_literal) )) (goto_statement "goto LAB_001604f0;" goto statement_identifier ;)) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (goto_statement "goto LAB_0016025b;" goto statement_identifier ;) }))) (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (if_statement "if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" if (parenthesized_expression "(*(byte *)(lVar15 + 0x2a61) == 0)" ( (binary_expression "*(byte *)(lVar15 + 0x2a61) == 0" (pointer_expression "*(byte *)(lVar15 + 0x2a61)" * (cast_expression "(byte *)(lVar15 + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }" { (if_statement "if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;" if (parenthesized_expression "(*(byte *)(lVar15 + 0x42d1) == 0)" ( (binary_expression "*(byte *)(lVar15 + 0x42d1) == 0" (pointer_expression "*(byte *)(lVar15 + 0x42d1)" * (cast_expression "(byte *)(lVar15 + 0x42d1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00160470;" goto statement_identifier ;)) (expression_statement "uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);" (assignment_expression "uVar19 = (uint)*(byte *)(lVar15 + 0x42d1)" identifier = (binary_expression "(uint)*(byte *)(lVar15 + 0x42d1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(lVar15 + 0x42d1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x42d1)" ( (binary_expression "lVar15 + 0x42d1" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" else (compound_statement "{\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" { (expression_statement "uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);" (assignment_expression "uVar19 = (uint)*(byte *)(lVar15 + 0x2a61)" identifier = (binary_expression "(uint)*(byte *)(lVar15 + 0x2a61)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(lVar15 + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" else (compound_statement "{\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;" statement_identifier : (if_statement "if ((uVar28 & 1) == 0) goto LAB_00160264;" if (parenthesized_expression "((uVar28 & 1) == 0)" ( (binary_expression "(uVar28 & 1) == 0" (parenthesized_expression "(uVar28 & 1)" ( (binary_expression "uVar28 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;))) }))) (if_statement "if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }" if (parenthesized_expression "(((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1))" ( (binary_expression "((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)" (parenthesized_expression "((uVar28 & 8) == 0)" ( (binary_expression "(uVar28 & 8) == 0" (parenthesized_expression "(uVar28 & 8)" ( (binary_expression "uVar28 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)((long)param_1 + 0x24) == -1)" ( (binary_expression "*(int *)((long)param_1 + 0x24) == -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" * (cast_expression "(int *)((long)param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }" { (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }" { (if_statement "if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))" ( (binary_expression "((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(param_1[2] + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" * (cast_expression "(byte *)(param_1[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x3c)" ( (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)))" ( (parenthesized_expression "(*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))" ( (binary_expression "*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)" (binary_expression "*(int *)(param_1 + 3) == 0" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)param_1 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" else (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 4)" ( (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 4" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" * (cast_expression "(byte *)((long)param_1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3a)" ( (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00160264;" goto statement_identifier ;)))) (if_statement "if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }" if (parenthesized_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x39) & 3)" ( (binary_expression "*(byte *)((long)param_1 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_1 + 0x39)" * (cast_expression "(byte *)((long)param_1 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x39)" ( (binary_expression "(long)param_1 + 0x39" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }" { (expression_statement "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;" (assignment_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4" identifier = (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 4" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" * (cast_expression "(byte *)((long)param_1 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3b)" ( (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal)) ;) (if_statement "if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" if (parenthesized_expression "((bVar6 & 1) == 0)" ( (binary_expression "(bVar6 & 1) == 0" (parenthesized_expression "(bVar6 & 1)" ( (binary_expression "bVar6 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }" { (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }" { (labeled_statement "LAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) != '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" * (cast_expression "(char *)(lVar15 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2a61)" ( (binary_expression "lVar15 + 0x2a61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }" { (expression_statement "cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);" (assignment_expression "cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29)" identifier = (call_expression "FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29)" identifier (argument_list "(lVar15 + 0x9120,*param_1,0,&local_29)" ( (binary_expression "lVar15 + 0x9120" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , (pointer_expression "&local_29" & identifier) )))) ;) (if_statement "if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }" if (parenthesized_expression "((cVar7 != '\0') && (local_29 == '\0'))" ( (binary_expression "(cVar7 != '\0') && (local_29 == '\0')" (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_29 == '\0')" ( (binary_expression "local_29 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }" { (labeled_statement "LAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);" statement_identifier : (return_statement "return (undefined8 *)(ulong)(uVar19 ^ 1);" return (cast_expression "(undefined8 *)(ulong)(uVar19 ^ 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar19 ^ 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar19 ^ 1)" ( (binary_expression "uVar19 ^ 1" identifier ^ number_literal) )))) ;)) })) (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001605fc;" goto statement_identifier ;)) (expression_statement "puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);" (assignment_expression "puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21)" identifier = (binary_expression "(undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21)" (cast_expression "(undefined8 *)(ulong)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(byte *)(lVar15 + 0xd21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xd21)" ( (binary_expression "lVar15 + 0xd21" identifier + number_literal) ))))) ;) (if_statement "if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }" if (parenthesized_expression "(*(byte *)(lVar15 + 0xd21) == 0)" ( (binary_expression "*(byte *)(lVar15 + 0xd21) == 0" (pointer_expression "*(byte *)(lVar15 + 0xd21)" * (cast_expression "(byte *)(lVar15 + 0xd21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xd21)" ( (binary_expression "lVar15 + 0xd21" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }" { (expression_statement "puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);" (assignment_expression "puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1)" identifier = (cast_expression "(undefined8 *)(ulong)(uVar19 ^ 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar19 ^ 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar19 ^ 1)" ( (binary_expression "uVar19 ^ 1" identifier ^ number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 0xf) != 1)" ( (binary_expression "(*(byte *)(param_1 + 7) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 7) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 7) & 0xf" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }" { (expression_statement "puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));" (assignment_expression "puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" identifier = (cast_expression "(undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" identifier (argument_list "((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" ( (call_expression "(int3)(uVar19 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar19 >> 8)" ( (binary_expression "uVar19 >> 8" identifier >> number_literal) ))) , (binary_expression "(byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9)" (call_expression "(byte)(uVar19 ^ 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 ^ 1)" ( (binary_expression "uVar19 ^ 1" identifier ^ number_literal) ))) | (pointer_expression "*(byte *)(lVar15 + 0xde9)" * (cast_expression "(byte *)(lVar15 + 0xde9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0xde9)" ( (binary_expression "lVar15 + 0xde9" identifier + number_literal) ))))) )))))) ;) })) })) })) }) (else_clause "else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" else (compound_statement "{\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" { (expression_statement "puVar12 = (undefined8 *)(ulong)(bVar6 & 1);" (assignment_expression "puVar12 = (undefined8 *)(ulong)(bVar6 & 1)" identifier = (cast_expression "(undefined8 *)(ulong)(bVar6 & 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(bVar6 & 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(bVar6 & 1)" ( (binary_expression "bVar6 & 1" identifier & number_literal) ))))) ;) }))) })) })) (return_statement "return puVar12;" return identifier ;) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }" while (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" ( (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" identifier = (pointer_expression "*(int **)(piVar23 + 2)" * (cast_expression "(int **)(piVar23 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23 + 2)" ( (binary_expression "piVar23 + 2" identifier + number_literal) ))))) , (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }" { (labeled_statement "LAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" statement_identifier : (if_statement "if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" if (parenthesized_expression "(*piVar23 == iVar31)" ( (binary_expression "*piVar23 == iVar31" (pointer_expression "*piVar23" * identifier) == identifier) )) (compound_statement "{\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" { (if_statement "if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }" if (parenthesized_expression "(piVar23[1] != 0xffffffff)" ( (binary_expression "piVar23[1] != 0xffffffff" (subscript_expression "piVar23[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }" { (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));" (assignment_expression "puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" identifier = (cast_expression "(undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" ( (binary_expression "(ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10)" (cast_expression "(ulong)(uint)piVar23[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)piVar23[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar23[1]" identifier [ number_literal ]))) - (pointer_expression "*(long *)(lVar15 + 0x10)" * (cast_expression "(long *)(lVar15 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar31 = (int)puVar13;" (assignment_expression "iVar31 = (int)puVar13" identifier = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00160de8;" goto statement_identifier ;) })) (break_statement "break;" break ;) }))) })) (goto_statement "goto LAB_00160bce;" goto statement_identifier ;) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }" while (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" ( (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" identifier = (pointer_expression "*(int **)(piVar23 + 2)" * (cast_expression "(int **)(piVar23 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23 + 2)" ( (binary_expression "piVar23 + 2" identifier + number_literal) ))))) , (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }" { (labeled_statement "LAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" statement_identifier : (if_statement "if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" if (parenthesized_expression "(iVar9 == *piVar23)" ( (binary_expression "iVar9 == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" { (if_statement "if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }" if (parenthesized_expression "(piVar23[1] != -1)" ( (binary_expression "piVar23[1] != -1" (subscript_expression "piVar23[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }" { (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" identifier = (subscript_expression "extraout_RDX[4]" identifier [ number_literal ])) ;) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00161eb6;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00161e9e;" goto statement_identifier ;)) (expression_statement "uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10)" identifier = (binary_expression "piVar23[1] - *(int *)(lVar15 + 0x10)" (subscript_expression "piVar23[1]" identifier [ number_literal ]) - (pointer_expression "*(int *)(lVar15 + 0x10)" * (cast_expression "(int *)(lVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x10)" ( (binary_expression "lVar15 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "puVar13 = extraout_RDX;" (assignment_expression "puVar13 = extraout_RDX" identifier = identifier) ;) (goto_statement "goto LAB_00160c17;" goto statement_identifier ;) })) (break_statement "break;" break ;) }))) })) (goto_statement "goto LAB_00160bce;" goto statement_identifier ;) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }" while (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" ( (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" identifier = (pointer_expression "*(int **)(piVar23 + 2)" * (cast_expression "(int **)(piVar23 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar23 + 2)" ( (binary_expression "piVar23 + 2" identifier + number_literal) ))))) , (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }" { (labeled_statement "LAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" statement_identifier : (if_statement "if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" if (parenthesized_expression "(iVar9 == *piVar23)" ( (binary_expression "iVar9 == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" { (expression_statement "iVar9 = piVar23[1];" (assignment_expression "iVar9 = piVar23[1]" identifier = (subscript_expression "piVar23[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 != -1) goto LAB_00160d4e;" if (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) )) (goto_statement "goto LAB_00160d4e;" goto statement_identifier ;)) (break_statement "break;" break ;) }))) })) (labeled_statement "LAB_00160bce:\n                    \n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");" statement_identifier : (expression_statement "FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");" (call_expression "FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset")" identifier (argument_list "("../../gold/symtab.h",0x1b7,"got_offset")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""got_offset"" " string_content ") ))) ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (unary_expression ~ IDENT) & LIT) | IDENT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , IDENT ))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) , IDENT )))) ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ^ LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) (ERROR : : IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ])))) )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) :) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) :) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))))) ;)) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * IDENT)) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) + LIT) ))))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) & LIT) | LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * IDENT)) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) ))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) + LIT) ))))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - IDENT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , IDENT ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) + LIT) ))))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) (ERROR : : IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ])))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) + LIT) ))))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (return_statement return IDENT ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) })) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) :) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) + LIT) ))))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * IDENT)) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;)) })))) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (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 = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT) & LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (return_statement return IDENT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT)) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT) & (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT))) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , LIT , (pointer_expression & IDENT) )))) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ LIT)) ;) })) })) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT ^ LIT) )))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT ^ LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT ^ LIT) ))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))))) ;) })) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))))) ;) }))) })) })) (return_statement return IDENT ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) }))) })) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) }))) })) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) }))) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })))
(function_definition "undefined8 *\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)\n\n{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    \n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}" (type_identifier "undefined8") (pointer_declarator "*\nFUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" (* "*") (function_declarator "FUN_001601c0(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" (identifier "FUN_001601c0") (parameter_list "(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "long *param_5" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "ulong param_6" (type_identifier "ulong") (identifier "param_6")) () ")")))) (compound_statement "{\n  char cVar1;\n  long *plVar2;\n  uint *puVar3;\n  long *plVar4;\n  long lVar5;\n  byte bVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  int *piVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined8 uVar14;\n  long lVar15;\n  byte bVar16;\n  ulong uVar17;\n  byte bVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  undefined8 *extraout_RDX;\n  ulong uVar21;\n  long lVar22;\n  long unaff_RBX;\n  int *piVar23;\n  uint *unaff_RBP;\n  ulong uVar24;\n  long *plVar25;\n  long *plVar26;\n  ulong uVar27;\n  uint uVar28;\n  undefined8 *unaff_R12;\n  uint uVar29;\n  int iVar30;\n  int iVar31;\n  undefined6 uStack_30;\n  char local_2a;\n  char local_29;\n  \n  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }\n  uVar24 = (ulong)(param_2 - 1U);\n  uVar28 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }\n  if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }\n  bVar6 = PTR_DAT_003f85c0[0x20];\n  puVar12 = (undefined8 *)(ulong)bVar6;\n  if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }\n  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];\n  if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }\n  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }\n  return puVar12;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }\n  goto LAB_00160bce;\n  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }\nLAB_00160bce:\n                    \n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined8 *puVar10;" (type_identifier "undefined8") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "undefined8 *puVar12;" (type_identifier "undefined8") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined8 *puVar13;" (type_identifier "undefined8") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "byte bVar16;" (type_identifier "byte") (identifier "bVar16") (; ";")) (declaration "ulong uVar17;" (type_identifier "ulong") (identifier "uVar17") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "undefined8 *extraout_RDX;" (type_identifier "undefined8") (pointer_declarator "*extraout_RDX" (* "*") (identifier "extraout_RDX")) (; ";")) (declaration "ulong uVar21;" (type_identifier "ulong") (identifier "uVar21") (; ";")) (declaration "long lVar22;" (sized_type_specifier "long" (long "long")) (identifier "lVar22") (; ";")) (declaration "long unaff_RBX;" (sized_type_specifier "long" (long "long")) (identifier "unaff_RBX") (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "uint *unaff_RBP;" (type_identifier "uint") (pointer_declarator "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (; ";")) (declaration "ulong uVar24;" (type_identifier "ulong") (identifier "uVar24") (; ";")) (declaration "long *plVar25;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar25" (* "*") (identifier "plVar25")) (; ";")) (declaration "long *plVar26;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar26" (* "*") (identifier "plVar26")) (; ";")) (declaration "ulong uVar27;" (type_identifier "ulong") (identifier "uVar27") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "undefined8 *unaff_R12;" (type_identifier "undefined8") (pointer_declarator "*unaff_R12" (* "*") (identifier "unaff_R12")) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "undefined6 uStack_30;" (type_identifier "undefined6") (identifier "uStack_30") (; ";")) (declaration "char local_2a;" (primitive_type "char") (identifier "local_2a") (; ";")) (declaration "char local_29;" (primitive_type "char") (identifier "local_29") (; ";")) (if_statement "if ((*(byte *)(param_4 + 0x70) & 2) == 0) {\n    return (undefined8 *)0x1;\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_4 + 0x70) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_4 + 0x70) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x70) & 2)" (( "(") (binary_expression "*(byte *)(param_4 + 0x70) & 2" (pointer_expression "*(byte *)(param_4 + 0x70)" (* "*") (cast_expression "(byte *)(param_4 + 0x70)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x70)" (( "(") (binary_expression "param_4 + 0x70" (identifier "param_4") (+ "+") (number_literal "0x70")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (undefined8 *)0x1;\n  }" ({ "{") (return_statement "return (undefined8 *)0x1;" (return "return") (cast_expression "(undefined8 *)0x1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (; ";")) (} "}"))) (expression_statement "uVar24 = (ulong)(param_2 - 1U);" (assignment_expression "uVar24 = (ulong)(param_2 - 1U)" (identifier "uVar24") (= "=") (call_expression "(ulong)(param_2 - 1U)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_2 - 1U)" (( "(") (binary_expression "param_2 - 1U" (identifier "param_2") (- "-") (number_literal "1U")) () ")")))) (; ";")) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 - 1U < 0x2b) {\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }" (if "if") (parenthesized_expression "(param_2 - 1U < 0x2b)" (( "(") (binary_expression "param_2 - 1U < 0x2b" (binary_expression "param_2 - 1U" (identifier "param_2") (- "-") (number_literal "1U")) (< "<") (number_literal "0x2b")) () ")")) (compound_statement "{\n    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];\n  }" ({ "{") (expression_statement "uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];" (assignment_expression "uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24]" (identifier "uVar28") (= "=") (subscript_expression "(uint)(char)(&DAT_00339ec0)[uVar24]" (call_expression "(uint)(char)(&DAT_00339ec0)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (argument_list "(&DAT_00339ec0)" (( "(") (pointer_expression "&DAT_00339ec0" (& "&") (identifier "DAT_00339ec0")) () ")"))) ([ "[") (identifier "uVar24") (] "]"))) (; ";")) (} "}"))) (if_statement "if (param_1 == (undefined8 *)0x0) {\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined8 *)0x0)" (( "(") (binary_expression "param_1 == (undefined8 *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }\n    FUN_0015d950();\n    goto LAB_001605fc;\n  }" ({ "{") (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 != 0) {\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }" (if "if") (parenthesized_expression "(lVar15 != 0)" (( "(") (binary_expression "lVar15 != 0" (identifier "lVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }\n      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);\n    }" ({ "{") (if_statement "if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {\n        return (undefined8 *)0x1;\n      }" (if "if") (parenthesized_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0'))" (( "(") (binary_expression "(*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')" (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) == '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0x2a61) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" (* "*") (cast_expression "(char *)(lVar15 + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x2a61)" (( "(") (binary_expression "lVar15 + 0x2a61" (identifier "lVar15") (+ "+") (number_literal "0x2a61")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(lVar15 + 0x42d1) == '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0x42d1) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x42d1)" (* "*") (cast_expression "(char *)(lVar15 + 0x42d1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x42d1)" (( "(") (binary_expression "lVar15 + 0x42d1" (identifier "lVar15") (+ "+") (number_literal "0x42d1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        return (undefined8 *)0x1;\n      }" ({ "{") (return_statement "return (undefined8 *)0x1;" (return "return") (cast_expression "(undefined8 *)0x1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (; ";")) (} "}"))) (return_statement "return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);" (return "return") (cast_expression "(undefined8 *)(ulong)(~uVar28 & 1 | param_3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(~uVar28 & 1 | param_3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(~uVar28 & 1 | param_3)" (( "(") (binary_expression "~uVar28 & 1 | param_3" (binary_expression "~uVar28 & 1" (unary_expression "~uVar28" (~ "~") (identifier "uVar28")) (& "&") (number_literal "1")) (| "|") (identifier "param_3")) () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_0015d950();" (call_expression "FUN_0015d950()" (identifier "FUN_0015d950") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_001605fc;" (goto "goto") (statement_identifier "LAB_001605fc") (; ";")) (} "}"))) (expression_statement "bVar6 = PTR_DAT_003f85c0[0x20];" (assignment_expression "bVar6 = PTR_DAT_003f85c0[0x20]" (identifier "bVar6") (= "=") (subscript_expression "PTR_DAT_003f85c0[0x20]" (identifier "PTR_DAT_003f85c0") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "puVar12 = (undefined8 *)(ulong)bVar6;" (assignment_expression "puVar12 = (undefined8 *)(ulong)bVar6" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)(ulong)bVar6" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)bVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar6")))) (; ";")) (if_statement "if (bVar6 == 0) {\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }" (if "if") (parenthesized_expression "(bVar6 == 0)" (( "(") (binary_expression "bVar6 == 0" (identifier "bVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0015d840();\n    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));\n    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);\n    plVar2 = *(long **)(uVar24 + 0x10);\n    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }\nLAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }\n    iVar30 = (int)param_6;\n    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);\n    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);\n    if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }\n    puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n    switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }\n    return puVar13;\n  }" ({ "{") (expression_statement "FUN_0015d840();" (call_expression "FUN_0015d840()" (identifier "FUN_0015d840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));" (assignment_expression "lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30))" (identifier "lVar15") (= "=") (call_expression "CONCAT17(local_29,CONCAT16(local_2a,uStack_30))" (identifier "CONCAT17") (argument_list "(local_29,CONCAT16(local_2a,uStack_30))" (( "(") (identifier "local_29") (, ",") (call_expression "CONCAT16(local_2a,uStack_30)" (identifier "CONCAT16") (argument_list "(local_2a,uStack_30)" (( "(") (identifier "local_2a") (, ",") (identifier "uStack_30") () ")"))) () ")")))) (; ";")) (expression_statement "puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);" (assignment_expression "puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" (* "*") (cast_expression "(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(uVar24 + 8) + 0x2b0)" (( "(") (binary_expression "*(long *)(uVar24 + 8) + 0x2b0" (pointer_expression "*(long *)(uVar24 + 8)" (* "*") (cast_expression "(long *)(uVar24 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar24 + 8)" (( "(") (binary_expression "uVar24 + 8" (identifier "uVar24") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2b0")) () ")"))))) (; ";")) (expression_statement "plVar2 = *(long **)(uVar24 + 0x10);" (assignment_expression "plVar2 = *(long **)(uVar24 + 0x10)" (identifier "plVar2") (= "=") (pointer_expression "*(long **)(uVar24 + 0x10)" (* "*") (cast_expression "(long **)(uVar24 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar24 + 0x10)" (( "(") (binary_expression "uVar24 + 0x10" (identifier "uVar24") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }\n    else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(unaff_RBX + 0xb) < '\0')" (( "(") (binary_expression "(char)*(byte *)(unaff_RBX + 0xb) < '\0'" (cast_expression "(char)*(byte *)(unaff_RBX + 0xb)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(unaff_RBX + 0xb)" (* "*") (cast_expression "(byte *)(unaff_RBX + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 0xb)" (( "(") (binary_expression "unaff_RBX + 0xb" (identifier "unaff_RBX") (+ "+") (number_literal "0xb")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar9 = *(int *)(unaff_RBX + 0x10);\n    }" ({ "{") (expression_statement "iVar9 = *(int *)(unaff_RBX + 0x10);" (assignment_expression "iVar9 = *(int *)(unaff_RBX + 0x10)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(unaff_RBX + 0x10)" (* "*") (cast_expression "(int *)(unaff_RBX + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 0x10)" (( "(") (binary_expression "unaff_RBX + 0x10" (identifier "unaff_RBX") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" (else "else") (compound_statement "{\n      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }\n      puVar3 = *(uint **)(unaff_RBX + 0x10);\n      uVar27 = (ulong)*puVar3;\n      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);\n      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);\n      if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }\nLAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);\n    }" ({ "{") (if_statement "if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }" (if "if") (parenthesized_expression "((*(byte *)(unaff_RBX + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(unaff_RBX + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(unaff_RBX + 0xb) & 8)" (( "(") (binary_expression "*(byte *)(unaff_RBX + 0xb) & 8" (pointer_expression "*(byte *)(unaff_RBX + 0xb)" (* "*") (cast_expression "(byte *)(unaff_RBX + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 0xb)" (( "(") (binary_expression "unaff_RBX + 0xb" (identifier "unaff_RBX") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_00199900("../../gold/object.h",0x6ab,"value");\n      }" ({ "{") (expression_statement "FUN_00199900("../../gold/object.h",0x6ab,"value");" (call_expression "FUN_00199900("../../gold/object.h",0x6ab,"value")" (identifier "FUN_00199900") (argument_list "("../../gold/object.h",0x6ab,"value")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x6ab") (, ",") (string_literal ""value"" (" """) (string_content "value") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3 = *(uint **)(unaff_RBX + 0x10);" (assignment_expression "puVar3 = *(uint **)(unaff_RBX + 0x10)" (identifier "puVar3") (= "=") (pointer_expression "*(uint **)(unaff_RBX + 0x10)" (* "*") (cast_expression "(uint **)(unaff_RBX + 0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_RBX + 0x10)" (( "(") (binary_expression "unaff_RBX + 0x10" (identifier "unaff_RBX") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar27 = (ulong)*puVar3;" (assignment_expression "uVar27 = (ulong)*puVar3" (identifier "uVar27") (= "=") (binary_expression "(ulong)*puVar3" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "uVar21 = uVar27 % *(ulong *)(puVar3 + 4);" (assignment_expression "uVar21 = uVar27 % *(ulong *)(puVar3 + 4)" (identifier "uVar21") (= "=") (binary_expression "uVar27 % *(ulong *)(puVar3 + 4)" (identifier "uVar27") (% "%") (pointer_expression "*(ulong *)(puVar3 + 4)" (* "*") (cast_expression "(ulong *)(puVar3 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 4)" (( "(") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);" (assignment_expression "plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" (identifier "plVar26") (= "=") (pointer_expression "*(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" (* "*") (cast_expression "(long **)(*(long *)(puVar3 + 2) + uVar21 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(puVar3 + 2) + uVar21 * 8)" (( "(") (binary_expression "*(long *)(puVar3 + 2) + uVar21 * 8" (pointer_expression "*(long *)(puVar3 + 2)" (* "*") (cast_expression "(long *)(puVar3 + 2)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 2)" (( "(") (binary_expression "puVar3 + 2" (identifier "puVar3") (+ "+") (number_literal "2")) () ")")))) (+ "+") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar26 != (long *)0x0) {\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }" (if "if") (parenthesized_expression "(plVar26 != (long *)0x0)" (( "(") (binary_expression "plVar26 != (long *)0x0" (identifier "plVar26") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar17 = ((long *)*plVar26)[1];\n        plVar4 = (long *)*plVar26;\n        while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }\n        if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }\n      }" ({ "{") (expression_statement "uVar17 = ((long *)*plVar26)[1];" (assignment_expression "uVar17 = ((long *)*plVar26)[1]" (identifier "uVar17") (= "=") (subscript_expression "((long *)*plVar26)[1]" (parenthesized_expression "((long *)*plVar26)" (( "(") (cast_expression "(long *)*plVar26" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar26" (* "*") (identifier "plVar26"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar4 = (long *)*plVar26;" (assignment_expression "plVar4 = (long *)*plVar26" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar26" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar26" (* "*") (identifier "plVar26")))) (; ";")) (while_statement "while (plVar25 = plVar4, uVar27 != uVar17) {\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }" (while "while") (parenthesized_expression "(plVar25 = plVar4, uVar27 != uVar17)" (( "(") (comma_expression "plVar25 = plVar4, uVar27 != uVar17" (assignment_expression "plVar25 = plVar4" (identifier "plVar25") (= "=") (identifier "plVar4")) (, ",") (binary_expression "uVar27 != uVar17" (identifier "uVar27") (!= "!=") (identifier "uVar17"))) () ")")) (compound_statement "{\n          plVar4 = (long *)*plVar25;\n          if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;\n        }" ({ "{") (expression_statement "plVar4 = (long *)*plVar25;" (assignment_expression "plVar4 = (long *)*plVar25" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar25" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar25" (* "*") (identifier "plVar25")))) (; ";")) (if_statement "if ((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))\n          goto LAB_00160b90;" (if "if") (parenthesized_expression "((plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))" (( "(") (binary_expression "(plVar4 == (long *)0x0) ||\n             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4))" (parenthesized_expression "(plVar4 == (long *)0x0)" (( "(") (binary_expression "plVar4 == (long *)0x0" (identifier "plVar4") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4))" (( "(") (comma_expression "uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" (assignment_expression "uVar17 = plVar4[1]" (identifier "uVar17") (= "=") (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" (assignment_expression "plVar26 = plVar25" (identifier "plVar26") (= "=") (identifier "plVar25")) (, ",") (binary_expression "uVar21 != uVar17 % *(ulong *)(puVar3 + 4)" (identifier "uVar21") (!= "!=") (binary_expression "uVar17 % *(ulong *)(puVar3 + 4)" (identifier "uVar17") (% "%") (pointer_expression "*(ulong *)(puVar3 + 4)" (* "*") (cast_expression "(ulong *)(puVar3 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 4)" (( "(") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4")) () ")")))))))) () ")"))) () ")")) (goto_statement "goto LAB_00160b90;" (goto "goto") (statement_identifier "LAB_00160b90") (; ";"))) (} "}"))) (if_statement "if (*plVar26 != 0) {\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }" (if "if") (parenthesized_expression "(*plVar26 != 0)" (( "(") (binary_expression "*plVar26 != 0" (pointer_expression "*plVar26" (* "*") (identifier "plVar26")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar9 = *(int *)(*plVar26 + 0x10);\n          goto LAB_0016070c;\n        }" ({ "{") (expression_statement "iVar9 = *(int *)(*plVar26 + 0x10);" (assignment_expression "iVar9 = *(int *)(*plVar26 + 0x10)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*plVar26 + 0x10)" (* "*") (cast_expression "(int *)(*plVar26 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar26 + 0x10)" (( "(") (binary_expression "*plVar26 + 0x10" (pointer_expression "*plVar26" (* "*") (identifier "plVar26")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_0016070c;" (goto "goto") (statement_identifier "LAB_0016070c") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00160b90:\n      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);" (statement_identifier "LAB_00160b90") (: ":") (expression_statement "iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);" (assignment_expression "iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" (identifier "iVar9") (= "=") (call_expression "FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" (identifier "FUN_00225ee0") (argument_list "(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27)" (( "(") (identifier "puVar3") (, ",") (identifier "plVar2") (, ",") (binary_expression "*(uint *)(unaff_RBX + 8) & 0x7ffffff" (pointer_expression "*(uint *)(unaff_RBX + 8)" (* "*") (cast_expression "(uint *)(unaff_RBX + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 8)" (( "(") (binary_expression "unaff_RBX + 8" (identifier "unaff_RBX") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x7ffffff")) (, ",") (identifier "uVar27") () ")")))) (; ";"))) (} "}")))) (labeled_statement "LAB_0016070c:\n    if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" (statement_identifier "LAB_0016070c") (: ":") (if_statement "if (lVar15 == 0) {\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }\n    else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;\n      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;\n    }" ({ "{") (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161e86;" (goto "goto") (statement_identifier "LAB_00161e86") (; ";"))) (expression_statement "bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;" (assignment_expression "bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1" (identifier "bVar6") (= "=") (binary_expression "*(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1" (pointer_expression "*(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" (* "*") (cast_expression "(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x2a61")) () ")")))) (^ "^") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n      bVar6 = FUN_0024abb0(lVar15);\n    }" (else "else") (compound_statement "{\n      bVar6 = FUN_0024abb0(lVar15);\n    }" ({ "{") (expression_statement "bVar6 = FUN_0024abb0(lVar15);" (assignment_expression "bVar6 = FUN_0024abb0(lVar15)" (identifier "bVar6") (= "=") (call_expression "FUN_0024abb0(lVar15)" (identifier "FUN_0024abb0") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")")))) (; ";")) (} "}"))))) (expression_statement "iVar30 = (int)param_6;" (assignment_expression "iVar30 = (int)param_6" (identifier "iVar30") (= "=") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6"))) (; ";")) (expression_statement "iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);" (assignment_expression "iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff)" (identifier "iVar8") (= "=") (call_expression "FUN_0015d860(bVar6,param_6 & 0xffffffff)" (identifier "FUN_0015d860") (argument_list "(bVar6,param_6 & 0xffffffff)" (( "(") (identifier "bVar6") (, ",") (binary_expression "param_6 & 0xffffffff" (identifier "param_6") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);" (assignment_expression "puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU)" (identifier "puVar10") (= "=") (cast_expression "(undefined8 *)(ulong)(iVar30 - 0xfU)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar30 - 0xfU)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar30 - 0xfU)" (( "(") (binary_expression "iVar30 - 0xfU" (identifier "iVar30") (- "-") (number_literal "0xfU")) () ")"))))) (; ";")) (if_statement "if (0x19 < iVar30 - 0xfU) {\n      return puVar10;\n    }" (if "if") (parenthesized_expression "(0x19 < iVar30 - 0xfU)" (( "(") (binary_expression "0x19 < iVar30 - 0xfU" (number_literal "0x19") (< "<") (binary_expression "iVar30 - 0xfU" (identifier "iVar30") (- "-") (number_literal "0xfU"))) () ")")) (compound_statement "{\n      return puVar10;\n    }" ({ "{") (return_statement "return puVar10;" (return "return") (identifier "puVar10") (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);" (assignment_expression "puVar13 = (undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)\n              ((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" (( "(") (binary_expression "(long)&switchD_00160746::switchdataD_00338da4 +\n              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (cast_expression "(long)&switchD_00160746" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&switchD_00160746" (& "&") (identifier "switchD_00160746"))) (ERROR "::switchdataD_00338da4" (: ":") (: ":") (identifier "switchdataD_00338da4")) (+ "+") (cast_expression "(long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (parenthesized_expression "(&switchD_00160746::switchdataD_00338da4)" (( "(") (ERROR "&switchD_00160746::" (pointer_expression "&switchD_00160746" (& "&") (identifier "switchD_00160746")) (: ":") (: ":")) (identifier "switchdataD_00338da4") () ")")) ([ "[") (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (] "]"))))) () ")")))) (; ";")) (switch_statement "switch(puVar10) {\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }" (switch "switch") (parenthesized_expression "(puVar10)" (( "(") (identifier "puVar10") () ")")) (compound_statement "{\n    case (undefined8 *)0x0:\n    case (undefined8 *)0x1:\n    case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;\n    case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;\n    case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;\n    case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;\n    case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;\n    case (undefined8 *)0x18:\n    case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }\n    }" ({ "{") (case_statement "case (undefined8 *)0x0:" (case "case") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (: ":")) (case_statement "case (undefined8 *)0x1:" (case "case") (cast_expression "(undefined8 *)0x1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (: ":")) (case_statement "case (undefined8 *)0x12:\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar8 = *piVar11;\n      if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }\n      *unaff_RBP = *unaff_RBP + uVar28;\n      puVar13 = (undefined8 *)(ulong)uVar28;\n      break;" (case "case") (cast_expression "(undefined8 *)0x12" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x12")) (: ":") (if_statement "if (iVar8 != 2) {\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }" (if "if") (parenthesized_expression "(iVar8 != 2)" (( "(") (binary_expression "iVar8 != 2" (identifier "iVar8") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }\n        iVar9 = (iVar30 == 0x21) + 1;\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\nLAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }\nLAB_00160a52:\n        lVar15 = extraout_RDX[4];\n        if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }\nLAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");\n      }" ({ "{") (if_statement "if (iVar8 != 0) {\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = param_6 & 0xffffffff;\n          uVar20 = *(undefined4 *)*param_5;\nLAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);\n          return puVar12;\n        }" ({ "{") (labeled_statement "LAB_00160e10:\n          uVar14 = gettext("unsupported reloc %u");" (statement_identifier "LAB_00160e10") (: ":") (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" (identifier "uVar14") (= "=") (call_expression "gettext("unsupported reloc %u")" (identifier "gettext") (argument_list "("unsupported reloc %u")" (( "(") (string_literal ""unsupported reloc %u"" (" """) (string_content "unsupported reloc %u") (" """)) () ")")))) (; ";"))) (expression_statement "param_6 = param_6 & 0xffffffff;" (assignment_expression "param_6 = param_6 & 0xffffffff" (identifier "param_6") (= "=") (binary_expression "param_6 & 0xffffffff" (identifier "param_6") (& "&") (number_literal "0xffffffff"))) (; ";")) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (labeled_statement "LAB_00160c4c:\n          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);" (statement_identifier "LAB_00160c4c") (: ":") (expression_statement "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);" (assignment_expression "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14,param_6)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") (, ",") (identifier "param_6") () ")"))))) (; ";"))) (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "iVar9 = (iVar30 == 0x21) + 1;" (assignment_expression "iVar9 = (iVar30 == 0x21) + 1" (identifier "iVar9") (= "=") (binary_expression "(iVar30 == 0x21) + 1" (parenthesized_expression "(iVar30 == 0x21)" (( "(") (binary_expression "iVar30 == 0x21" (identifier "iVar30") (== "==") (number_literal "0x21")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }" (if "if") (parenthesized_expression "(lVar15 != 0)" (( "(") (binary_expression "lVar15 != 0" (identifier "lVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");\n        }" ({ "{") (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" (identifier "piVar23") (= "=") (cast_expression "(int *)(lVar15 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" (identifier "piVar11") (= "=") (identifier "piVar23")) (; ";")) (do_statement "do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" (do "do") (compound_statement "{\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" ({ "{") (if_statement "if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }" (if "if") (parenthesized_expression "(*piVar11 == iVar9)" (( "(") (binary_expression "*piVar11 == iVar9" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160fd0;\n              break;\n            }" ({ "{") (if_statement "if (piVar11[1] != -1) goto LAB_00160fd0;" (if "if") (parenthesized_expression "(piVar11[1] != -1)" (( "(") (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00160fd0;" (goto "goto") (statement_identifier "LAB_00160fd0") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(piVar11 + 2)" (* "*") (cast_expression "(int **)(piVar11 + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar11 + 2)" (( "(") (binary_expression "piVar11 + 2" (identifier "piVar11") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xcb8,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xcb8") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" (identifier "uVar28") (= "=") (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" (* "*") (cast_expression "(uint *)(*param_5 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 4)" (( "(") (binary_expression "*param_5 + 4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (identifier "cVar7") (= "=") (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x158)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x158)" (* "*") (cast_expression "(code **)(*plVar2 + 0x158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x158)" (( "(") (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x158")) () ")"))))) () ")")) (argument_list "(plVar2,uVar28,iVar9,0)" (( "(") (identifier "plVar2") (, ",") (identifier "uVar28") (, ",") (identifier "iVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");\n        }" ({ "{") (expression_statement "FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xcbe,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xcbe") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);" (assignment_expression "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x160)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x160)" (* "*") (cast_expression "(code **)(*plVar2 + 0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x160)" (( "(") (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x160")) () ")"))))) () ")")) (argument_list "(plVar2,uVar28,iVar9,0)" (( "(") (identifier "plVar2") (, ",") (identifier "uVar28") (, ",") (identifier "iVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "LAB_00160d4e:\n        if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" (statement_identifier "LAB_00160d4e") (: ":") (if_statement "if (iVar30 == 0xf) {\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" (if "if") (parenthesized_expression "(iVar30 == 0xf)" (( "(") (binary_expression "iVar30 == 0xf" (identifier "iVar30") (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n          lVar15 = extraout_RDX[6];\n          if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }\n          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }\n          iVar9 = iVar9 + *(int *)(lVar15 + 8);\n        }" ({ "{") (expression_statement "lVar15 = extraout_RDX[6];" (assignment_expression "lVar15 = extraout_RDX[6]" (identifier "lVar15") (= "=") (subscript_expression "extraout_RDX[6]" (identifier "extraout_RDX") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (lVar15 == 0) {\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00161ee6:\n            FUN_0015d780();\nLAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");\n          }" ({ "{") (labeled_statement "LAB_00161ee6:\n            FUN_0015d780();" (statement_identifier "LAB_00161ee6") (: ":") (expression_statement "FUN_0015d780();" (call_expression "FUN_0015d780()" (identifier "FUN_0015d780") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_00161eeb:\n                    \n            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");" (statement_identifier "LAB_00161eeb") (: ":") (expression_statement "FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xc0b,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xc0b") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 1)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x20) & 1" (pointer_expression "*(byte *)(lVar15 + 0x20)" (* "*") (cast_expression "(byte *)(lVar15 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00199900("../../gold/output.h",0xc5,"address");\n          }" ({ "{") (expression_statement "FUN_00199900("../../gold/output.h",0xc5,"address");" (call_expression "FUN_00199900("../../gold/output.h",0xc5,"address")" (identifier "FUN_00199900") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = iVar9 + *(int *)(lVar15 + 8);" (assignment_expression "iVar9 = iVar9 + *(int *)(lVar15 + 8)" (identifier "iVar9") (= "=") (binary_expression "iVar9 + *(int *)(lVar15 + 8)" (identifier "iVar9") (+ "+") (pointer_expression "*(int *)(lVar15 + 8)" (* "*") (cast_expression "(int *)(lVar15 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 8)" (( "(") (binary_expression "lVar15 + 8" (identifier "lVar15") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (} "}")))) (labeled_statement "LAB_00160a52:\n        lVar15 = extraout_RDX[4];" (statement_identifier "LAB_00160a52") (: ":") (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" (identifier "lVar15") (= "=") (subscript_expression "extraout_RDX[4]" (identifier "extraout_RDX") ([ "[") (number_literal "4") (] "]"))) (; ";"))) (if_statement "if (lVar15 != 0) {\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }" (if "if") (parenthesized_expression "(lVar15 != 0)" (( "(") (binary_expression "lVar15 != 0" (identifier "lVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }\nLAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");\n        }" ({ "{") (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) != 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" (* "*") (cast_expression "(byte *)(lVar15 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);\n            *unaff_RBP = uVar28;\n            return (undefined8 *)(ulong)uVar28;\n          }" ({ "{") (expression_statement "uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10)" (identifier "uVar28") (= "=") (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10)" (parenthesized_expression "(iVar9 + *unaff_RBP)" (( "(") (binary_expression "iVar9 + *unaff_RBP" (identifier "iVar9") (+ "+") (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP"))) () ")")) (- "-") (pointer_expression "*(int *)(lVar15 + 0x10)" (* "*") (cast_expression "(int *)(lVar15 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x10)" (( "(") (binary_expression "lVar15 + 0x10" (identifier "lVar15") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "*unaff_RBP = uVar28;" (assignment_expression "*unaff_RBP = uVar28" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (identifier "uVar28")) (; ";")) (return_statement "return (undefined8 *)(ulong)uVar28;" (return "return") (cast_expression "(undefined8 *)(ulong)uVar28" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar28"))) (; ";")) (} "}"))) (labeled_statement "LAB_00161e9e:\n                    \n          FUN_00199900("../../gold/output.h",0xcf,"data_size");" (statement_identifier "LAB_00161e9e") (: ":") (expression_statement "FUN_00199900("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00199900("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_00199900") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";"))) (} "}"))) (labeled_statement "LAB_00161eb6:\n                    \n        FUN_00199900("../../gold/i386.cc",0x206,"got_size");" (statement_identifier "LAB_00161eb6") (: ":") (expression_statement "FUN_00199900("../../gold/i386.cc",0x206,"got_size");" (call_expression "FUN_00199900("../../gold/i386.cc",0x206,"got_size")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0x206,"got_size")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0x206") (, ",") (string_literal ""got_size"" (" """) (string_content "got_size") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");\n      }" ({ "{") (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" (( "(") (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (* "*") (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (+ "+") (number_literal "6")) () ")"))))) () ")")) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" ({ "{") (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" (return "return") (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00169320(lVar15)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00169320(lVar15)" (identifier "FUN_00169320") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (; ";")) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" (if "if") (parenthesized_expression "((char)puVar12 != '\0')" (( "(") (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar12")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          return puVar12;\n        }" ({ "{") (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xca6,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xca6") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" (identifier "piVar11") (= "=") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (expression_statement "iVar8 = *piVar11;" (assignment_expression "iVar8 = *piVar11" (identifier "iVar8") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if (iVar30 == 0xf) {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }\n      else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" (if "if") (parenthesized_expression "(iVar30 == 0xf)" (( "(") (binary_expression "iVar30 == 0xf" (identifier "iVar30") (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }\nLAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);\nLAB_0016168e:\n        uVar28 = iVar9 - iVar8;\n      }" ({ "{") (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 - 1)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 - 1)" (( "(") (binary_expression "iVar8 - 1" (identifier "iVar8") (- "-") (number_literal "1")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (if_statement "if (bVar6 == 0xa1) {\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }\n        else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" (if "if") (parenthesized_expression "(bVar6 == 0xa1)" (( "(") (binary_expression "bVar6 == 0xa1" (identifier "bVar6") (== "==") (number_literal "0xa1")) () ")")) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;\n        }" ({ "{") (expression_statement "*(undefined1 *)((long)unaff_RBP + -1) = 0xb8;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -1) = 0xb8" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0xb8")) (; ";")) (} "}")) (else_clause "else {\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" (else "else") (compound_statement "{\n          iVar8 = *(int *)*param_5;\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }\n          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;\n        }" ({ "{") (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 - 2)" (( "(") (binary_expression "iVar8 - 2" (identifier "iVar8") (- "-") (number_literal "2")) () ")"))))) () ")")) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (*(char *)((long)unaff_RBP + -2) == -0x75) {\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }\n          else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" (if "if") (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) == -0x75)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -2) == -0x75" (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (== "==") (number_literal "-0x75")) () ")")) (compound_statement "{\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 199;\n          }" ({ "{") (if_statement "if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" (if "if") (parenthesized_expression "((bVar6 & 199) != 5)" (( "(") (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" (( "(") (binary_expression "bVar6 & 199" (identifier "bVar6") (& "&") (number_literal "199")) () ")")) (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 199;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 199" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (number_literal "199")) (; ";")) (} "}")) (else_clause "else {\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" (else "else") (compound_statement "{\n            if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }\n            if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          }" ({ "{") (if_statement "if (*(char *)((long)unaff_RBP + -2) != '\x03') {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }" (if "if") (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != '\x03')" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -2) != '\x03'" (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n              goto LAB_00161683;\n            }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (goto_statement "goto LAB_00161683;" (goto "goto") (statement_identifier "LAB_00161683") (; ";")) (} "}"))) (if_statement "if ((bVar6 & 199) != 5) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" (if "if") (parenthesized_expression "((bVar6 & 199) != 5)" (( "(") (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" (( "(") (binary_expression "bVar6 & 199" (identifier "bVar6") (& "&") (number_literal "199")) () ")")) (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (number_literal "0x81")) (; ";")) (} "}")))) (expression_statement "*(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (binary_expression "(byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0" (binary_expression "(byte)((int)(uint)bVar6 >> 3) & 7" (call_expression "(byte)((int)(uint)bVar6 >> 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((int)(uint)bVar6 >> 3)" (( "(") (binary_expression "(int)(uint)bVar6 >> 3" (cast_expression "(int)(uint)bVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (>> ">>") (number_literal "3")) () ")"))) (& "&") (number_literal "7")) (| "|") (number_literal "0xc0"))) (; ";")) (} "}")))) (labeled_statement "LAB_00161683:\n        iVar8 = *(int *)(puVar12 + 0x59);" (statement_identifier "LAB_00161683") (: ":") (expression_statement "iVar8 = *(int *)(puVar12 + 0x59);" (assignment_expression "iVar8 = *(int *)(puVar12 + 0x59)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar12 + 0x59)" (* "*") (cast_expression "(int *)(puVar12 + 0x59)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x59)" (( "(") (binary_expression "puVar12 + 0x59" (identifier "puVar12") (+ "+") (number_literal "0x59")) () ")"))))) (; ";"))) (labeled_statement "LAB_0016168e:\n        uVar28 = iVar9 - iVar8;" (statement_identifier "LAB_0016168e") (: ":") (expression_statement "uVar28 = iVar9 - iVar8;" (assignment_expression "uVar28 = iVar9 - iVar8" (identifier "uVar28") (= "=") (binary_expression "iVar9 - iVar8" (identifier "iVar9") (- "-") (identifier "iVar8"))) (; ";"))) (} "}")) (else_clause "else {\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" (else "else") (compound_statement "{\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }\n        iVar8 = *piVar11;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        cVar7 = *(char *)((long)unaff_RBP + -2);\n        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        bVar6 = (byte)((int)(uint)bVar6 >> 3);\n        if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        iVar8 = (int)puVar12[0x59];\n        uVar28 = iVar8 - iVar9;\n        if (iVar30 == 0x10) goto LAB_0016168e;\n      }" ({ "{") (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 - 2)" (( "(") (binary_expression "iVar8 - 2" (identifier "iVar8") (- "-") (number_literal "2")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          piVar11 = (int *)*param_5;\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" (identifier "piVar11") (= "=") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (} "}"))) (expression_statement "iVar8 = *piVar11;" (assignment_expression "iVar8 = *piVar11" (identifier "iVar8") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "cVar7 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar7 = *(char *)((long)unaff_RBP + -2)" (identifier "cVar7") (= "=") (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")"))))) (; ";")) (if_statement "if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (if "if") (parenthesized_expression "(((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4))" (( "(") (binary_expression "((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)" (parenthesized_expression "((bVar6 & 0xc0) != 0x80)" (( "(") (binary_expression "(bVar6 & 0xc0) != 0x80" (parenthesized_expression "(bVar6 & 0xc0)" (( "(") (binary_expression "bVar6 & 0xc0" (identifier "bVar6") (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0x80")) () ")")) (|| "||") (parenthesized_expression "((bVar6 & 7) == 4)" (( "(") (binary_expression "(bVar6 & 7) == 4" (parenthesized_expression "(bVar6 & 7)" (( "(") (binary_expression "bVar6 & 7" (identifier "bVar6") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar6 = (byte)((int)(uint)bVar6 >> 3);" (assignment_expression "bVar6 = (byte)((int)(uint)bVar6 >> 3)" (identifier "bVar6") (= "=") (call_expression "(byte)((int)(uint)bVar6 >> 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((int)(uint)bVar6 >> 3)" (( "(") (binary_expression "(int)(uint)bVar6 >> 3" (cast_expression "(int)(uint)bVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (cVar7 == -0x75) {\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }\n        else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (if "if") (parenthesized_expression "(cVar7 == -0x75)" (( "(") (binary_expression "cVar7 == -0x75" (identifier "cVar7") (== "==") (number_literal "-0x75")) () ")")) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -2) = 199;\nLAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;\n        }" ({ "{") (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 199;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 199" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (number_literal "199")) (; ";")) (labeled_statement "LAB_00160edd:\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;" (statement_identifier "LAB_00160edd") (: ":") (expression_statement "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (binary_expression "bVar6 & 7 | 0xc0" (binary_expression "bVar6 & 7" (identifier "bVar6") (& "&") (number_literal "7")) (| "|") (number_literal "0xc0"))) (; ";"))) (} "}")) (else_clause "else if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (else "else") (if_statement "if (cVar7 == '+') {\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }\n        else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (if "if") (parenthesized_expression "(cVar7 == '+')" (( "(") (binary_expression "cVar7 == '+'" (identifier "cVar7") (== "==") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")")) (compound_statement "{\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;\n        }" ({ "{") (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (number_literal "0x81")) (; ";")) (expression_statement "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;" (assignment_expression "*(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8" (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (binary_expression "bVar6 & 7 | 0xe8" (binary_expression "bVar6 & 7" (identifier "bVar6") (& "&") (number_literal "7")) (| "|") (number_literal "0xe8"))) (; ";")) (} "}")) (else_clause "else {\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (else "else") (compound_statement "{\n          if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" ({ "{") (if_statement "if (cVar7 == '\x03') {\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }" (if "if") (parenthesized_expression "(cVar7 == '\x03')" (( "(") (binary_expression "cVar7 == '\x03'" (identifier "cVar7") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;\n            goto LAB_00160edd;\n          }" ({ "{") (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x81;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x81" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (number_literal "0x81")) (; ";")) (goto_statement "goto LAB_00160edd;" (goto "goto") (statement_identifier "LAB_00160edd") (; ";")) (} "}"))) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}")))))) (expression_statement "iVar8 = (int)puVar12[0x59];" (assignment_expression "iVar8 = (int)puVar12[0x59]" (identifier "iVar8") (= "=") (cast_expression "(int)puVar12[0x59]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar12[0x59]" (identifier "puVar12") ([ "[") (number_literal "0x59") (] "]")))) (; ";")) (expression_statement "uVar28 = iVar8 - iVar9;" (assignment_expression "uVar28 = iVar8 - iVar9" (identifier "uVar28") (= "=") (binary_expression "iVar8 - iVar9" (identifier "iVar8") (- "-") (identifier "iVar9"))) (; ";")) (if_statement "if (iVar30 == 0x10) goto LAB_0016168e;" (if "if") (parenthesized_expression "(iVar30 == 0x10)" (( "(") (binary_expression "iVar30 == 0x10" (identifier "iVar30") (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0016168e;" (goto "goto") (statement_identifier "LAB_0016168e") (; ";"))) (} "}")))) (expression_statement "*unaff_RBP = *unaff_RBP + uVar28;" (assignment_expression "*unaff_RBP = *unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (binary_expression "*unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (+ "+") (identifier "uVar28"))) (; ";")) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(ulong)uVar28" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar28")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (undefined8 *)0x2:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }\n      break;" (case "case") (cast_expression "(undefined8 *)0x2" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")) (: ":") (expression_statement "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (puVar13 == (undefined8 *)0x0) {\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }" (if "if") (parenthesized_expression "(puVar13 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined8 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");\n      }" ({ "{") (labeled_statement "LAB_00161e86:\n                    \n        FUN_00199900("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_00161e86") (: ":") (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00199900") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)((long)puVar13 + 0x2a61) == '\0')" (( "(") (binary_expression "*(char *)((long)puVar13 + 0x2a61) == '\0'" (pointer_expression "*(char *)((long)puVar13 + 0x2a61)" (* "*") (cast_expression "(char *)((long)puVar13 + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar13 + 0x2a61)" (( "(") (binary_expression "(long)puVar13 + 0x2a61" (cast_expression "(long)puVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar13")) (+ "+") (number_literal "0x2a61")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }\n      }" ({ "{") (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }\n        else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;\n          if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }\n        }" ({ "{") (expression_statement "puVar13 = *(undefined8 **)PTR_DAT_003f85c0;" (assignment_expression "puVar13 = *(undefined8 **)PTR_DAT_003f85c0" (identifier "puVar13") (= "=") (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0")))) (; ";")) (if_statement "if ((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }" (if "if") (parenthesized_expression "((*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'))" (( "(") (binary_expression "(*(int *)(puVar13 + 6) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (parenthesized_expression "(*(int *)(puVar13 + 6) < 1)" (( "(") (binary_expression "*(int *)(puVar13 + 6) < 1" (pointer_expression "*(int *)(puVar13 + 6)" (* "*") (cast_expression "(int *)(puVar13 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 6)" (( "(") (binary_expression "puVar13 + 6" (identifier "puVar13") (+ "+") (number_literal "6")) () ")")))) (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (( "(") (comma_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'" (assignment_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)FUN_00169320(lVar15)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00169320(lVar15)" (identifier "FUN_00169320") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (, ",") (binary_expression "(char)puVar13 == '\0'" (cast_expression "(char)puVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n                    \n            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");\n          }" ({ "{") (expression_statement "FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xcd7,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xcd7") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" (else "else") (compound_statement "{\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          puVar13 = puVar12;\n        }" ({ "{") (expression_statement "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);" (assignment_expression "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (parenthesized_expression "(iVar9 + *unaff_RBP)" (( "(") (binary_expression "iVar9 + *unaff_RBP" (identifier "iVar9") (+ "+") (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP"))) () ")")) (- "-") (pointer_expression "*(int *)(puVar12 + 0x59)" (* "*") (cast_expression "(int *)(puVar12 + 0x59)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x59)" (( "(") (binary_expression "puVar12 + 0x59" (identifier "puVar12") (+ "+") (number_literal "0x59")) () ")")))))) (; ";")) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" (identifier "puVar13") (= "=") (identifier "puVar12")) (; ";")) (} "}")))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (undefined8 *)0x3:\n      if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }\n      iVar8 = *(int *)*param_5;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }\nLAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;" (case "case") (cast_expression "(undefined8 *)0x3" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3")) (: ":") (if_statement "if (iVar8 != 2) {\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }" (if "if") (parenthesized_expression "(iVar8 != 2)" (( "(") (binary_expression "iVar8 != 2" (identifier "iVar8") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);\n        if (cVar7 == '\0') goto LAB_00161eeb;\n        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);\n        puVar13 = (undefined8 *)(ulong)uVar28;\nLAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }\n        iVar9 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }\n        cVar7 = (char)unaff_RBP[1];\n        cVar1 = *(char *)((long)unaff_RBP + -2);\n        bVar6 = *(byte *)((long)unaff_RBP + -1);\n        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }\n        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }\nLAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;\n        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;\n        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;\n        *(undefined1 *)param_1 = 1;\n        return param_1;\n      }" ({ "{") (expression_statement "iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);" (assignment_expression "iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3)" (identifier "iVar9") (= "=") (binary_expression "(iVar8 != 3) + 1 + (uint)(iVar8 != 3)" (binary_expression "(iVar8 != 3) + 1" (parenthesized_expression "(iVar8 != 3)" (( "(") (binary_expression "iVar8 != 3" (identifier "iVar8") (!= "!=") (number_literal "3")) () ")")) (+ "+") (number_literal "1")) (+ "+") (call_expression "(uint)(iVar8 != 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 != 3)" (( "(") (binary_expression "iVar8 != 3" (identifier "iVar8") (!= "!=") (number_literal "3")) () ")"))))) (; ";")) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }" (if "if") (parenthesized_expression "(lVar15 != 0)" (( "(") (binary_expression "lVar15 != 0" (identifier "lVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");\n        }" ({ "{") (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" (identifier "piVar23") (= "=") (cast_expression "(int *)(lVar15 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" (identifier "piVar11") (= "=") (identifier "piVar23")) (; ";")) (do_statement "do {\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" (do "do") (compound_statement "{\n            if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" ({ "{") (if_statement "if (*piVar11 == iVar9) {\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }" (if "if") (parenthesized_expression "(*piVar11 == iVar9)" (( "(") (binary_expression "*piVar11 == iVar9" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160bc0;\n              break;\n            }" ({ "{") (if_statement "if (piVar11[1] != -1) goto LAB_00160bc0;" (if "if") (parenthesized_expression "(piVar11[1] != -1)" (( "(") (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00160bc0;" (goto "goto") (statement_identifier "LAB_00160bc0") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(piVar11 + 2)" (* "*") (cast_expression "(int **)(piVar11 + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar11 + 2)" (( "(") (binary_expression "piVar11 + 2" (identifier "piVar11") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xc05,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xc05") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" (identifier "uVar28") (= "=") (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" (* "*") (cast_expression "(uint *)(*param_5 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 4)" (( "(") (binary_expression "*param_5 + 4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (identifier "cVar7") (= "=") (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x158)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x158)" (* "*") (cast_expression "(code **)(*plVar2 + 0x158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x158)" (( "(") (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x158")) () ")"))))) () ")")) (argument_list "(plVar2,uVar28,iVar9,0)" (( "(") (identifier "plVar2") (, ",") (identifier "uVar28") (, ",") (identifier "iVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto LAB_00161eeb;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00161eeb;" (goto "goto") (statement_identifier "LAB_00161eeb") (; ";"))) (expression_statement "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);" (assignment_expression "iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x160)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x160)" (* "*") (cast_expression "(code **)(*plVar2 + 0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x160)" (( "(") (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x160")) () ")"))))) () ")")) (argument_list "(plVar2,uVar28,iVar9,0)" (( "(") (identifier "plVar2") (, ",") (identifier "uVar28") (, ",") (identifier "iVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" (identifier "lVar15") (= "=") (subscript_expression "extraout_RDX[4]" (identifier "extraout_RDX") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161eb6;" (goto "goto") (statement_identifier "LAB_00161eb6") (; ";"))) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" (* "*") (cast_expression "(byte *)(lVar15 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161e9e;" (goto "goto") (statement_identifier "LAB_00161e9e") (; ";"))) (expression_statement "uVar28 = iVar9 - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = iVar9 - *(int *)(lVar15 + 0x10)" (identifier "uVar28") (= "=") (binary_expression "iVar9 - *(int *)(lVar15 + 0x10)" (identifier "iVar9") (- "-") (pointer_expression "*(int *)(lVar15 + 0x10)" (* "*") (cast_expression "(int *)(lVar15 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x10)" (( "(") (binary_expression "lVar15 + 0x10" (identifier "lVar15") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(ulong)uVar28" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar28")))) (; ";")) (labeled_statement "LAB_00160c17:\n        if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" (statement_identifier "LAB_00160c17") (: ":") (if_statement "if (iVar8 != 3) {\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" (if "if") (parenthesized_expression "(iVar8 != 3)" (( "(") (binary_expression "iVar8 != 3" (identifier "iVar8") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }\n          goto LAB_00160c26;\n        }" ({ "{") (if_statement "if (iVar8 != 0) {\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar14 = gettext("unsupported reloc %u");\n            param_6 = 0x12;\n            uVar20 = *(undefined4 *)*param_5;\n            goto LAB_00160c4c;\n          }" ({ "{") (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" (identifier "uVar14") (= "=") (call_expression "gettext("unsupported reloc %u")" (identifier "gettext") (argument_list "("unsupported reloc %u")" (( "(") (string_literal ""unsupported reloc %u"" (" """) (string_content "unsupported reloc %u") (" """)) () ")")))) (; ";")) (expression_statement "param_6 = 0x12;" (assignment_expression "param_6 = 0x12" (identifier "param_6") (= "=") (number_literal "0x12")) (; ";")) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (goto_statement "goto LAB_00160c4c;" (goto "goto") (statement_identifier "LAB_00160c4c") (; ";")) (} "}"))) (goto_statement "goto LAB_00160c26;" (goto "goto") (statement_identifier "LAB_00160c26") (; ";")) (} "}")))) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar9 - 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar9 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar9 - 2)" (( "(") (binary_expression "iVar9 - 2" (identifier "iVar9") (- "-") (number_literal "2")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar9 + 9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar9 + 9)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar9 + 9)" (( "(") (binary_expression "iVar9 + 9" (identifier "iVar9") (+ "+") (number_literal "9")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" (identifier "cVar7") (= "=") (cast_expression "(char)unaff_RBP[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "unaff_RBP[1]" (identifier "unaff_RBP") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")"))))) (; ";")) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (if_statement "if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }\n        else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" (if "if") (parenthesized_expression "((cVar1 == -0x73) || (cVar1 == '\x04'))" (( "(") (binary_expression "(cVar1 == -0x73) || (cVar1 == '\x04')" (parenthesized_expression "(cVar1 == -0x73)" (( "(") (binary_expression "cVar1 == -0x73" (identifier "cVar1") (== "==") (number_literal "-0x73")) () ")")) (|| "||") (parenthesized_expression "(cVar1 == '\x04')" (( "(") (binary_expression "cVar1 == '\x04'" (identifier "cVar1") (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;\nLAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }\n        }" ({ "{") (if_statement "if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;" (if "if") (parenthesized_expression "(cVar7 != -0x18 && cVar7 != -1)" (( "(") (binary_expression "cVar7 != -0x18 && cVar7 != -1" (binary_expression "cVar7 != -0x18" (identifier "cVar7") (!= "!=") (number_literal "-0x18")) (&& "&&") (binary_expression "cVar7 != -1" (identifier "cVar7") (!= "!=") (number_literal "-1"))) () ")")) (goto_statement "goto LAB_0016198c;" (goto "goto") (statement_identifier "LAB_0016198c") (; ";"))) (labeled_statement "LAB_00161589:\n          if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" (statement_identifier "LAB_00161589") (: ":") (if_statement "if (cVar1 == '\x04') {\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" (if "if") (parenthesized_expression "(cVar1 == '\x04')" (( "(") (binary_expression "cVar1 == '\x04'" (identifier "cVar1") (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }\n            if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }\n            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            goto LAB_00161451;\n          }" ({ "{") (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar9 - 3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar9 - 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar9 - 3)" (( "(") (binary_expression "iVar9 - 3" (identifier "iVar9") (- "-") (number_literal "3")) () ")"))))) () ")")) (compound_statement "{\n              uVar14 = gettext("TLS relocation out of range");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n              iVar9 = *(int *)*param_5;\n            }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }" (if "if") (parenthesized_expression "(*(char *)((long)unaff_RBP + -3) != -0x73)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -3) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -3)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -3)" (( "(") (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-3")) () ")")))) (!= "!=") (number_literal "-0x73")) () ")")) (compound_statement "{\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (if_statement "if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {\n              lVar15 = -3;\n              lVar22 = 5;\n            }\n            else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" (if "if") (parenthesized_expression "(((bVar6 & 199) == 5) && (bVar6 != 0x20))" (( "(") (binary_expression "((bVar6 & 199) == 5) && (bVar6 != 0x20)" (parenthesized_expression "((bVar6 & 199) == 5)" (( "(") (binary_expression "(bVar6 & 199) == 5" (parenthesized_expression "(bVar6 & 199)" (( "(") (binary_expression "bVar6 & 199" (identifier "bVar6") (& "&") (number_literal "199")) () ")")) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(bVar6 != 0x20)" (( "(") (binary_expression "bVar6 != 0x20" (identifier "bVar6") (!= "!=") (number_literal "0x20")) () ")"))) () ")")) (compound_statement "{\n              lVar15 = -3;\n              lVar22 = 5;\n            }" ({ "{") (expression_statement "lVar15 = -3;" (assignment_expression "lVar15 = -3" (identifier "lVar15") (= "=") (number_literal "-3")) (; ";")) (expression_statement "lVar22 = 5;" (assignment_expression "lVar22 = 5" (identifier "lVar22") (= "=") (number_literal "5")) (; ";")) (} "}")) (else_clause "else {\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" (else "else") (compound_statement "{\n              uVar20 = *(undefined4 *)*param_5;\n              uVar14 = gettext("TLS relocation against invalid instruction");\n              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n              lVar15 = -3;\n              lVar22 = 5;\n            }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "lVar15 = -3;" (assignment_expression "lVar15 = -3" (identifier "lVar15") (= "=") (number_literal "-3")) (; ";")) (expression_statement "lVar22 = 5;" (assignment_expression "lVar22 = 5" (identifier "lVar22") (= "=") (number_literal "5")) (; ";")) (} "}")))) (goto_statement "goto LAB_00161451;" (goto "goto") (statement_identifier "LAB_00161451") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" (else "else") (compound_statement "{\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n          iVar9 = *(int *)*param_5;\n          if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (if_statement "if (cVar7 != -0x18 && cVar7 != -1) {\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }" (if "if") (parenthesized_expression "(cVar7 != -0x18 && cVar7 != -1)" (( "(") (binary_expression "cVar7 != -0x18 && cVar7 != -1" (binary_expression "cVar7 != -0x18" (identifier "cVar7") (!= "!=") (number_literal "-0x18")) (&& "&&") (binary_expression "cVar7 != -1" (identifier "cVar7") (!= "!=") (number_literal "-1"))) () ")")) (compound_statement "{\nLAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n            iVar9 = *(int *)*param_5;\n            goto LAB_00161589;\n          }" ({ "{") (labeled_statement "LAB_0016198c:\n            uVar14 = gettext("TLS relocation against invalid instruction");" (statement_identifier "LAB_0016198c") (: ":") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";"))) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (goto_statement "goto LAB_00161589;" (goto "goto") (statement_identifier "LAB_00161589") (; ";")) (} "}"))) (} "}")))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar9 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar9 + 10)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar9 + 10)" (( "(") (binary_expression "iVar9 + 10" (identifier "iVar9") (+ "+") (number_literal "10")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (if_statement "if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {\n          lVar15 = -2;\n          lVar22 = 6;\n        }\n        else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" (if "if") (parenthesized_expression "((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)))))" (( "(") (binary_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&\n           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))" (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" (( "(") (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" (( "(") (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" (( "(") (binary_expression "bVar6 & 0xf8" (identifier "bVar6") (& "&") (number_literal "0xf8")) () ")")) (== "==") (number_literal "0x80")) () ")")) (&& "&&") (parenthesized_expression "((bVar6 & 3) != 0)" (( "(") (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" (( "(") (binary_expression "bVar6 & 3" (identifier "bVar6") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))" (( "(") (parenthesized_expression "((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)))" (( "(") (binary_expression "(cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||\n            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))" (parenthesized_expression "(cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70))" (( "(") (binary_expression "cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)" (binary_expression "cVar7 == -0x18" (identifier "cVar7") (== "==") (number_literal "-0x18")) (&& "&&") (parenthesized_expression "(*(char *)((long)unaff_RBP + 9) == -0x70)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + 9) == -0x70" (pointer_expression "*(char *)((long)unaff_RBP + 9)" (* "*") (cast_expression "(char *)((long)unaff_RBP + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 9)" (( "(") (binary_expression "(long)unaff_RBP + 9" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "9")) () ")")))) (== "==") (number_literal "-0x70")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))" (( "(") (binary_expression "(bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" (( "(") (binary_expression "bVar6 & 7" (identifier "bVar6") (& "&") (number_literal "7")) () ")")) (== "==") (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" (( "(") (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 5)" (( "(") (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "7")) () ")"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          lVar15 = -2;\n          lVar22 = 6;\n        }" ({ "{") (expression_statement "lVar15 = -2;" (assignment_expression "lVar15 = -2" (identifier "lVar15") (= "=") (number_literal "-2")) (; ";")) (expression_statement "lVar22 = 6;" (assignment_expression "lVar22 = 6" (identifier "lVar22") (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" (else "else") (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          lVar15 = -2;\n          lVar22 = 6;\n        }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "lVar15 = -2;" (assignment_expression "lVar15 = -2" (identifier "lVar15") (= "=") (number_literal "-2")) (; ";")) (expression_statement "lVar22 = 6;" (assignment_expression "lVar22 = 6" (identifier "lVar22") (= "=") (number_literal "6")) (; ";")) (} "}")))) (labeled_statement "LAB_00161451:\n        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;" (statement_identifier "LAB_00161451") (: ":") (expression_statement "*(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;" (assignment_expression "*(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f" (pointer_expression "*(undefined8 *)(lVar15 + (long)unaff_RBP)" (* "*") (cast_expression "(undefined8 *)(lVar15 + (long)unaff_RBP)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + (long)unaff_RBP)" (( "(") (binary_expression "lVar15 + (long)unaff_RBP" (identifier "lVar15") (+ "+") (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP"))) () ")")))) (= "=") (identifier "DAT_00338d7f")) (; ";"))) (expression_statement "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;" (assignment_expression "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87" (pointer_expression "*(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" (* "*") (cast_expression "(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined8 *)(lVar15 + (long)unaff_RBP) + 1)" (( "(") (binary_expression "(undefined8 *)(lVar15 + (long)unaff_RBP) + 1" (cast_expression "(undefined8 *)(lVar15 + (long)unaff_RBP)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + (long)unaff_RBP)" (( "(") (binary_expression "lVar15 + (long)unaff_RBP" (identifier "lVar15") (+ "+") (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP"))) () ")"))) (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "DAT_00338d87")) (; ";")) (expression_statement "*(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;" (assignment_expression "*(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28" (pointer_expression "*(int *)((long)unaff_RBP + lVar22)" (* "*") (cast_expression "(int *)((long)unaff_RBP + lVar22)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + lVar22)" (( "(") (binary_expression "(long)unaff_RBP + lVar22" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (identifier "lVar22")) () ")")))) (= "=") (binary_expression "*(int *)((long)unaff_RBP + lVar22) + uVar28" (pointer_expression "*(int *)((long)unaff_RBP + lVar22)" (* "*") (cast_expression "(int *)((long)unaff_RBP + lVar22)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + lVar22)" (( "(") (binary_expression "(long)unaff_RBP + lVar22" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (identifier "lVar22")) () ")")))) (+ "+") (identifier "uVar28"))) (; ";")) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" (* "*") (cast_expression "(undefined1 *)param_1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (number_literal "1")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");\n      }" ({ "{") (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" (( "(") (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (* "*") (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (+ "+") (number_literal "6")) () ")"))))) () ")")) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" ({ "{") (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" (return "return") (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00169320(lVar15)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00169320(lVar15)" (identifier "FUN_00169320") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (; ";")) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" (if "if") (parenthesized_expression "((char)puVar12 != '\0')" (( "(") (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar12")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          return puVar12;\n        }" ({ "{") (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xbf5,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xbf5") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 - 2)" (( "(") (binary_expression "iVar8 - 2" (identifier "iVar8") (- "-") (number_literal "2")) () ")"))))) () ")")) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 + 9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 + 9)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 + 9)" (( "(") (binary_expression "iVar8 + 9" (identifier "iVar8") (+ "+") (number_literal "9")) () ")"))))) () ")")) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        iVar8 = *(int *)*param_5;\n      }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" (identifier "cVar7") (= "=") (cast_expression "(char)unaff_RBP[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "unaff_RBP[1]" (identifier "unaff_RBP") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")"))))) (; ";")) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (if_statement "if ((cVar1 == -0x73) || (cVar1 == '\x04')) {\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" (if "if") (parenthesized_expression "((cVar1 == -0x73) || (cVar1 == '\x04'))" (( "(") (binary_expression "(cVar1 == -0x73) || (cVar1 == '\x04')" (parenthesized_expression "(cVar1 == -0x73)" (( "(") (binary_expression "cVar1 == -0x73" (identifier "cVar1") (== "==") (number_literal "-0x73")) () ")")) (|| "||") (parenthesized_expression "(cVar1 == '\x04')" (( "(") (binary_expression "cVar1 == '\x04'" (identifier "cVar1") (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;\nLAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;\n        iVar8 = *(int *)*param_5;\n        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }\n        if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\n        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        lVar15 = 5;\n        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;\n      }" ({ "{") (if_statement "if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;" (if "if") (parenthesized_expression "(cVar7 != -1 && cVar7 != -0x18)" (( "(") (binary_expression "cVar7 != -1 && cVar7 != -0x18" (binary_expression "cVar7 != -1" (identifier "cVar7") (!= "!=") (number_literal "-1")) (&& "&&") (binary_expression "cVar7 != -0x18" (identifier "cVar7") (!= "!=") (number_literal "-0x18"))) () ")")) (goto_statement "goto LAB_00161759;" (goto "goto") (statement_identifier "LAB_00161759") (; ";"))) (labeled_statement "LAB_001614c8:\n        if (cVar1 != '\x04') goto LAB_001607f1;" (statement_identifier "LAB_001614c8") (: ":") (if_statement "if (cVar1 != '\x04') goto LAB_001607f1;" (if "if") (parenthesized_expression "(cVar1 != '\x04')" (( "(") (binary_expression "cVar1 != '\x04'" (identifier "cVar1") (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (goto_statement "goto LAB_001607f1;" (goto "goto") (statement_identifier "LAB_001607f1") (; ";")))) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 - 3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 - 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 - 3)" (( "(") (binary_expression "iVar8 - 3" (identifier "iVar8") (- "-") (number_literal "3")) () ")"))))) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          iVar8 = *(int *)*param_5;\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (*(char *)((long)unaff_RBP + -3) != -0x73) {\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" (if "if") (parenthesized_expression "(*(char *)((long)unaff_RBP + -3) != -0x73)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -3) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -3)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -3)" (( "(") (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-3")) () ")")))) (!= "!=") (number_literal "-0x73")) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (if_statement "if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (if "if") (parenthesized_expression "(((bVar6 & 199) != 5) || (bVar6 == 0x20))" (( "(") (binary_expression "((bVar6 & 199) != 5) || (bVar6 == 0x20)" (parenthesized_expression "((bVar6 & 199) != 5)" (( "(") (binary_expression "(bVar6 & 199) != 5" (parenthesized_expression "(bVar6 & 199)" (( "(") (binary_expression "bVar6 & 199" (identifier "bVar6") (& "&") (number_literal "199")) () ")")) (!= "!=") (number_literal "5")) () ")")) (|| "||") (parenthesized_expression "(bVar6 == 0x20)" (( "(") (binary_expression "bVar6 == 0x20" (identifier "bVar6") (== "==") (number_literal "0x20")) () ")"))) () ")")) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" (identifier "lVar15") (= "=") (number_literal "5")) (; ";")) (expression_statement "*(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -3)" (* "*") (cast_expression "(undefined8 *)((long)unaff_RBP + -3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -3)" (( "(") (binary_expression "(long)unaff_RBP + -3" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-3")) () ")")))) (= "=") (identifier "DAT_00338d68")) (; ";")) (expression_statement "*(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 5)" (* "*") (cast_expression "(undefined4 *)((long)unaff_RBP + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 5)" (( "(") (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "DAT_00338d70")) (; ";")) (} "}")) (else_clause "else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" (else "else") (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }\nLAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }\n        lVar15 = 6;\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;\n      }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (if_statement "if (cVar7 != -1 && cVar7 != -0x18) {\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }" (if "if") (parenthesized_expression "(cVar7 != -1 && cVar7 != -0x18)" (( "(") (binary_expression "cVar7 != -1 && cVar7 != -0x18" (binary_expression "cVar7 != -1" (identifier "cVar7") (!= "!=") (number_literal "-1")) (&& "&&") (binary_expression "cVar7 != -0x18" (identifier "cVar7") (!= "!=") (number_literal "-0x18"))) () ")")) (compound_statement "{\n          iVar8 = *(int *)*param_5;\nLAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          goto LAB_001614c8;\n        }" ({ "{") (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (labeled_statement "LAB_00161759:\n          uVar14 = gettext("TLS relocation against invalid instruction");" (statement_identifier "LAB_00161759") (: ":") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";"))) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (goto_statement "goto LAB_001614c8;" (goto "goto") (statement_identifier "LAB_001614c8") (; ";")) (} "}"))) (labeled_statement "LAB_001607f1:\n        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" (statement_identifier "LAB_001607f1") (: ":") (if_statement "if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }\n        else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" (if "if") (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" (( "(") (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" (( "(") (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" (( "(") (binary_expression "bVar6 & 0xf8" (identifier "bVar6") (& "&") (number_literal "0xf8")) () ")")) (== "==") (number_literal "0x80")) () ")")) (&& "&&") (parenthesized_expression "((bVar6 & 3) != 0)" (( "(") (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" (( "(") (binary_expression "bVar6 & 3" (identifier "bVar6") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }\nLAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }\n        }" ({ "{") (if_statement "if (cVar7 != -0x18) {\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }" (if "if") (parenthesized_expression "(cVar7 != -0x18)" (( "(") (binary_expression "cVar7 != -0x18" (identifier "cVar7") (!= "!=") (number_literal "-0x18")) () ")")) (compound_statement "{\n            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;\n            goto LAB_00160829;\n          }" ({ "{") (if_statement "if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;" (if "if") (parenthesized_expression "((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7))" (( "(") (binary_expression "(bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" (( "(") (binary_expression "bVar6 & 7" (identifier "bVar6") (& "&") (number_literal "7")) () ")")) (!= "!=") (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" (( "(") (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 5)" (( "(") (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "7")) () ")"))) () ")")) (goto_statement "goto LAB_001607ff;" (goto "goto") (statement_identifier "LAB_001607ff") (; ";"))) (goto_statement "goto LAB_00160829;" (goto "goto") (statement_identifier "LAB_00160829") (; ";")) (} "}"))) (labeled_statement "LAB_00160833:\n          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" (statement_identifier "LAB_00160833") (: ":") (if_statement "if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)) {\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" (if "if") (parenthesized_expression "((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70))" (( "(") (binary_expression "(unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||\n             (*(char *)((long)unaff_RBP + 9) != -0x70)" (parenthesized_expression "(unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9))" (( "(") (binary_expression "unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)" (identifier "unaff_R12") (<= "<=") (cast_expression "(undefined8 *)(ulong)(*(int *)*param_5 + 9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(*(int *)*param_5 + 9)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(int *)*param_5 + 9)" (( "(") (binary_expression "*(int *)*param_5 + 9" (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (+ "+") (number_literal "9")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(*(char *)((long)unaff_RBP + 9) != -0x70)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + 9) != -0x70" (pointer_expression "*(char *)((long)unaff_RBP + 9)" (* "*") (cast_expression "(char *)((long)unaff_RBP + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 9)" (( "(") (binary_expression "(long)unaff_RBP + 9" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "9")) () ")")))) (!= "!=") (number_literal "-0x70")) () ")"))) () ")")) (compound_statement "{\n            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;\n            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;\n            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;\n            lVar15 = 5;\n            goto LAB_0016087d;\n          }" ({ "{") (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (identifier "DAT_00338d74")) (; ";")) (expression_statement "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;" (assignment_expression "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c" (pointer_expression "*(undefined2 *)((long)unaff_RBP + 6)" (* "*") (cast_expression "(undefined2 *)((long)unaff_RBP + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 6)" (( "(") (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "DAT_00338d7c")) (; ";")) (expression_statement "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;" (assignment_expression "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e" (pointer_expression "*(undefined1 *)(unaff_RBP + 2)" (* "*") (cast_expression "(undefined1 *)(unaff_RBP + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBP + 2)" (( "(") (binary_expression "unaff_RBP + 2" (identifier "unaff_RBP") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "DAT_00338d7e")) (; ";")) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" (identifier "lVar15") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_0016087d;" (goto "goto") (statement_identifier "LAB_0016087d") (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" (else "else") (compound_statement "{\nLAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\nLAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;\n        }" ({ "{") (labeled_statement "LAB_001607ff:\n          uVar20 = *(undefined4 *)*param_5;" (statement_identifier "LAB_001607ff") (: ":") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";"))) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (labeled_statement "LAB_00160829:\n          if (cVar7 != -1) goto LAB_00160833;" (statement_identifier "LAB_00160829") (: ":") (if_statement "if (cVar7 != -1) goto LAB_00160833;" (if "if") (parenthesized_expression "(cVar7 != -1)" (( "(") (binary_expression "cVar7 != -1" (identifier "cVar7") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00160833;" (goto "goto") (statement_identifier "LAB_00160833") (; ";")))) (} "}"))))) (expression_statement "lVar15 = 6;" (assignment_expression "lVar15 = 6" (identifier "lVar15") (= "=") (number_literal "6")) (; ";")) (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (identifier "DAT_00338d68")) (; ";")) (expression_statement "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 6)" (* "*") (cast_expression "(undefined4 *)((long)unaff_RBP + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 6)" (( "(") (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "DAT_00338d70")) (; ";")) (} "}")))) (labeled_statement "LAB_0016087d:\n      *(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);" (statement_identifier "LAB_0016087d") (: ":") (expression_statement "*(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);" (assignment_expression "*(int *)((long)unaff_RBP + lVar15) =\n           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9)" (pointer_expression "*(int *)((long)unaff_RBP + lVar15)" (* "*") (cast_expression "(int *)((long)unaff_RBP + lVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + lVar15)" (( "(") (binary_expression "(long)unaff_RBP + lVar15" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (identifier "lVar15")) () ")")))) (= "=") (binary_expression "*(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9)" (pointer_expression "*(int *)((long)unaff_RBP + lVar15)" (* "*") (cast_expression "(int *)((long)unaff_RBP + lVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + lVar15)" (( "(") (binary_expression "(long)unaff_RBP + lVar15" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (identifier "lVar15")) () ")")))) (+ "+") (parenthesized_expression "((int)puVar12[0x59] - iVar9)" (( "(") (binary_expression "(int)puVar12[0x59] - iVar9" (cast_expression "(int)puVar12[0x59]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar12[0x59]" (identifier "puVar12") ([ "[") (number_literal "0x59") (] "]"))) (- "-") (identifier "iVar9")) () ")")))) (; ";"))) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" (* "*") (cast_expression "(undefined1 *)param_1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" (identifier "puVar13") (= "=") (identifier "param_1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (undefined8 *)0x4:\n      if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }\n      if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }\n      piVar11 = (int *)*param_5;\n      iVar9 = *piVar11;\n      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }\n      cVar7 = (char)unaff_RBP[1];\n      bVar6 = *(byte *)((long)unaff_RBP + -1);\n      cVar1 = *(char *)((long)unaff_RBP + -2);\n      iVar9 = *piVar11;\n      if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }\n      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }\n      if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }\n      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }\n      *(undefined1 *)param_1 = 1;\n      puVar13 = param_1;\n      break;" (case "case") (cast_expression "(undefined8 *)0x4" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")) (: ":") (if_statement "if (*(int *)((long)param_1 + 4) == 1) {\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }" (if "if") (parenthesized_expression "(*(int *)((long)param_1 + 4) == 1)" (( "(") (binary_expression "*(int *)((long)param_1 + 4) == 1" (pointer_expression "*(int *)((long)param_1 + 4)" (* "*") (cast_expression "(int *)((long)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 4)" (( "(") (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        uVar14 = gettext("both SUN and GNU model TLS relocations");\n        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);\n        return puVar12;\n      }" ({ "{") (expression_statement "uVar14 = gettext("both SUN and GNU model TLS relocations");" (assignment_expression "uVar14 = gettext("both SUN and GNU model TLS relocations")" (identifier "uVar14") (= "=") (call_expression "gettext("both SUN and GNU model TLS relocations")" (identifier "gettext") (argument_list "("both SUN and GNU model TLS relocations")" (( "(") (string_literal ""both SUN and GNU model TLS relocations"" (" """) (string_content "both SUN and GNU model TLS relocations") (" """)) () ")")))) (; ";")) (expression_statement "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);" (assignment_expression "puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,*(undefined4 *)*param_5,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (, ",") (identifier "uVar14") () ")"))))) (; ";")) (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((long)param_1 + 4) = 2;" (assignment_expression "*(undefined4 *)((long)param_1 + 4) = 2" (pointer_expression "*(undefined4 *)((long)param_1 + 4)" (* "*") (cast_expression "(undefined4 *)((long)param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 4)" (( "(") (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar8 != 2) {\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }" (if "if") (parenthesized_expression "(iVar8 != 2)" (( "(") (binary_expression "iVar8 != 2" (identifier "iVar8") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }\n        iVar9 = *(int *)(extraout_RDX + 0x12);\n        if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }\n        goto LAB_00160a52;\n      }" ({ "{") (if_statement "if (iVar8 != 0) {\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar14 = gettext("unsupported reloc %u");\n          param_6 = 0x13;\n          uVar20 = *(undefined4 *)*param_5;\n          goto LAB_00160c4c;\n        }" ({ "{") (expression_statement "uVar14 = gettext("unsupported reloc %u");" (assignment_expression "uVar14 = gettext("unsupported reloc %u")" (identifier "uVar14") (= "=") (call_expression "gettext("unsupported reloc %u")" (identifier "gettext") (argument_list "("unsupported reloc %u")" (( "(") (string_literal ""unsupported reloc %u"" (" """) (string_content "unsupported reloc %u") (" """)) () ")")))) (; ";")) (expression_statement "param_6 = 0x13;" (assignment_expression "param_6 = 0x13" (identifier "param_6") (= "=") (number_literal "0x13")) (; ";")) (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (goto_statement "goto LAB_00160c4c;" (goto "goto") (statement_identifier "LAB_00160c4c") (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(extraout_RDX + 0x12);" (assignment_expression "iVar9 = *(int *)(extraout_RDX + 0x12)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(extraout_RDX + 0x12)" (* "*") (cast_expression "(int *)(extraout_RDX + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(extraout_RDX + 0x12)" (( "(") (binary_expression "extraout_RDX + 0x12" (identifier "extraout_RDX") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (if_statement "if (iVar9 == -1) {\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }" (if "if") (parenthesized_expression "(iVar9 == -1)" (( "(") (binary_expression "iVar9 == -1" (identifier "iVar9") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");\n        }" ({ "{") (expression_statement "FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");" (call_expression "FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0x65a,"got_mod_index_entry")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0x65a") (, ",") (string_literal ""got_mod_index_entry"" (" """) (string_content "got_mod_index_entry") (" """)) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00160a52;" (goto "goto") (statement_identifier "LAB_00160a52") (; ";")) (} "}"))) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }\n        puVar12 = (undefined8 *)FUN_00169320(lVar15);\n        if ((char)puVar12 != '\0') {\n          return puVar12;\n        }\n                    \n        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");\n      }" ({ "{") (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" (( "(") (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (* "*") (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (+ "+") (number_literal "6")) () ")"))))) () ")")) (compound_statement "{\n          return *(undefined8 **)PTR_DAT_003f85c0;\n        }" ({ "{") (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" (return "return") (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00169320(lVar15)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00169320(lVar15)" (identifier "FUN_00169320") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (; ";")) (if_statement "if ((char)puVar12 != '\0') {\n          return puVar12;\n        }" (if "if") (parenthesized_expression "((char)puVar12 != '\0')" (( "(") (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar12")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          return puVar12;\n        }" ({ "{") (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xc71,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xc71") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" (identifier "piVar11") (= "=") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" (identifier "iVar9") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar9 - 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar9 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar9 - 2)" (( "(") (binary_expression "iVar9 - 2" (identifier "iVar9") (- "-") (number_literal "2")) () ")"))))) () ")")) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        piVar11 = (int *)*param_5;\n      }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "piVar11 = (int *)*param_5;" (assignment_expression "piVar11 = (int *)*param_5" (identifier "piVar11") (= "=") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (} "}"))) (expression_statement "cVar7 = (char)unaff_RBP[1];" (assignment_expression "cVar7 = (char)unaff_RBP[1]" (identifier "cVar7") (= "=") (cast_expression "(char)unaff_RBP[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "unaff_RBP[1]" (identifier "unaff_RBP") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "bVar6 = *(byte *)((long)unaff_RBP + -1);" (assignment_expression "bVar6 = *(byte *)((long)unaff_RBP + -1)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "cVar1 = *(char *)((long)unaff_RBP + -2);" (assignment_expression "cVar1 = *(char *)((long)unaff_RBP + -2)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")"))))) (; ";")) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" (identifier "iVar9") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if ((cVar7 == -0x18) || (cVar7 == -1)) {\n        iVar8 = (cVar7 != -0x18) + 9;\n      }\n      else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" (if "if") (parenthesized_expression "((cVar7 == -0x18) || (cVar7 == -1))" (( "(") (binary_expression "(cVar7 == -0x18) || (cVar7 == -1)" (parenthesized_expression "(cVar7 == -0x18)" (( "(") (binary_expression "cVar7 == -0x18" (identifier "cVar7") (== "==") (number_literal "-0x18")) () ")")) (|| "||") (parenthesized_expression "(cVar7 == -1)" (( "(") (binary_expression "cVar7 == -1" (identifier "cVar7") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        iVar8 = (cVar7 != -0x18) + 9;\n      }" ({ "{") (expression_statement "iVar8 = (cVar7 != -0x18) + 9;" (assignment_expression "iVar8 = (cVar7 != -0x18) + 9" (identifier "iVar8") (= "=") (binary_expression "(cVar7 != -0x18) + 9" (parenthesized_expression "(cVar7 != -0x18)" (( "(") (binary_expression "cVar7 != -0x18" (identifier "cVar7") (!= "!=") (number_literal "-0x18")) () ")")) (+ "+") (number_literal "9"))) (; ";")) (} "}")) (else_clause "else {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" (else "else") (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n        iVar8 = 10;\n      }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" (identifier "iVar8") (= "=") (number_literal "10")) (; ";")) (} "}")))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(uint)(iVar8 + iVar9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(uint)(iVar8 + iVar9)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(iVar8 + iVar9)" (( "(") (binary_expression "iVar8 + iVar9" (identifier "iVar8") (+ "+") (identifier "iVar9")) () ")"))))) () ")")) (compound_statement "{\n        uVar14 = gettext("TLS relocation out of range");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n        iVar9 = *(int *)*param_5;\n      }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)*param_5;" (assignment_expression "iVar9 = *(int *)*param_5" (identifier "iVar9") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (cVar1 != -0x73) {\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }" (if "if") (parenthesized_expression "(cVar1 != -0x73)" (( "(") (binary_expression "cVar1 != -0x73" (identifier "cVar1") (!= "!=") (number_literal "-0x73")) () ")")) (compound_statement "{\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);\n      }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar9,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar9,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar9,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (if_statement "if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }\n      else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" (if "if") (parenthesized_expression "(((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0))" (( "(") (binary_expression "((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)" (parenthesized_expression "((bVar6 & 0xf8) == 0x80)" (( "(") (binary_expression "(bVar6 & 0xf8) == 0x80" (parenthesized_expression "(bVar6 & 0xf8)" (( "(") (binary_expression "bVar6 & 0xf8" (identifier "bVar6") (& "&") (number_literal "0xf8")) () ")")) (== "==") (number_literal "0x80")) () ")")) (&& "&&") (parenthesized_expression "((bVar6 & 3) != 0)" (( "(") (binary_expression "(bVar6 & 3) != 0" (parenthesized_expression "(bVar6 & 3)" (( "(") (binary_expression "bVar6 & 3" (identifier "bVar6") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }\nLAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;\n        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;\n        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;\n      }" ({ "{") (if_statement "if (cVar7 != -0x18) {\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }" (if "if") (parenthesized_expression "(cVar7 != -0x18)" (( "(") (binary_expression "cVar7 != -0x18" (identifier "cVar7") (!= "!=") (number_literal "-0x18")) () ")")) (compound_statement "{\n          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          goto LAB_001610d7;\n        }" ({ "{") (if_statement "if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" (if "if") (parenthesized_expression "((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7))" (( "(") (binary_expression "(bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)" (parenthesized_expression "(bVar6 & 7)" (( "(") (binary_expression "bVar6 & 7" (identifier "bVar6") (& "&") (number_literal "7")) () ")")) (!= "!=") (parenthesized_expression "(*(byte *)((long)unaff_RBP + 5) & 7)" (( "(") (binary_expression "*(byte *)((long)unaff_RBP + 5) & 7" (pointer_expression "*(byte *)((long)unaff_RBP + 5)" (* "*") (cast_expression "(byte *)((long)unaff_RBP + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 5)" (( "(") (binary_expression "(long)unaff_RBP + 5" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_001610d7;" (goto "goto") (statement_identifier "LAB_001610d7") (; ";")) (} "}"))) (labeled_statement "LAB_00161808:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;" (statement_identifier "LAB_00161808") (: ":") (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (identifier "DAT_00338d8b")) (; ";"))) (expression_statement "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;" (assignment_expression "*(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93" (pointer_expression "*(undefined2 *)((long)unaff_RBP + 6)" (* "*") (cast_expression "(undefined2 *)((long)unaff_RBP + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 6)" (( "(") (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "DAT_00338d93")) (; ";")) (expression_statement "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;" (assignment_expression "*(undefined1 *)(unaff_RBP + 2) = DAT_00338d95" (pointer_expression "*(undefined1 *)(unaff_RBP + 2)" (* "*") (cast_expression "(undefined1 *)(unaff_RBP + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBP + 2)" (( "(") (binary_expression "unaff_RBP + 2" (identifier "unaff_RBP") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "DAT_00338d95")) (; ";")) (} "}")) (else_clause "else {\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" (else "else") (compound_statement "{\n        uVar20 = *(undefined4 *)*param_5;\n        uVar14 = gettext("TLS relocation against invalid instruction");\n        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        if (cVar7 == -0x18) goto LAB_00161808;\nLAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;\n        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;\n      }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (if_statement "if (cVar7 == -0x18) goto LAB_00161808;" (if "if") (parenthesized_expression "(cVar7 == -0x18)" (( "(") (binary_expression "cVar7 == -0x18" (identifier "cVar7") (== "==") (number_literal "-0x18")) () ")")) (goto_statement "goto LAB_00161808;" (goto "goto") (statement_identifier "LAB_00161808") (; ";"))) (labeled_statement "LAB_001610d7:\n        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;" (statement_identifier "LAB_001610d7") (: ":") (expression_statement "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;" (assignment_expression "*(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97" (pointer_expression "*(undefined8 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined8 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (identifier "DAT_00338d97")) (; ";"))) (expression_statement "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;" (assignment_expression "*(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f" (pointer_expression "*(undefined4 *)((long)unaff_RBP + 6)" (* "*") (cast_expression "(undefined4 *)((long)unaff_RBP + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 6)" (( "(") (binary_expression "(long)unaff_RBP + 6" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "DAT_00338d9f")) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)param_1 = 1;" (assignment_expression "*(undefined1 *)param_1 = 1" (pointer_expression "*(undefined1 *)param_1" (* "*") (cast_expression "(undefined1 *)param_1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" (identifier "puVar13") (= "=") (identifier "param_1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (undefined8 *)0x11:\n      puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);\n      if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }\n      *unaff_RBP = *unaff_RBP + iVar9;\n      return puVar10;" (case "case") (cast_expression "(undefined8 *)0x11" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x11")) (: ":") (expression_statement "puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);" (assignment_expression "puVar10 = (undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" (identifier "puVar10") (= "=") (cast_expression "(undefined8 *)\n                ((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10])" (( "(") (binary_expression "(long)&switchD_00160746::switchdataD_00338da4 +\n                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (cast_expression "(long)&switchD_00160746" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&switchD_00160746" (& "&") (identifier "switchD_00160746"))) (ERROR "::switchdataD_00338da4" (: ":") (: ":") (identifier "switchdataD_00338da4")) (+ "+") (cast_expression "(long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]" (parenthesized_expression "(&switchD_00160746::switchdataD_00338da4)" (( "(") (ERROR "&switchD_00160746::" (pointer_expression "&switchD_00160746" (& "&") (identifier "switchD_00160746")) (: ":") (: ":")) (identifier "switchdataD_00338da4") () ")")) ([ "[") (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (] "]"))))) () ")")))) (; ";")) (if_statement "if ((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }" (if "if") (parenthesized_expression "((iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0))" (( "(") (binary_expression "(iVar8 == 2) &&\n         (puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)" (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)" (( "(") (comma_expression "puVar10 = *(undefined8 **)(uVar24 + 0x38),\n         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0" (assignment_expression "puVar10 = *(undefined8 **)(uVar24 + 0x38)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined8 **)(uVar24 + 0x38)" (* "*") (cast_expression "(undefined8 **)(uVar24 + 0x38)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar24 + 0x38)" (( "(") (binary_expression "uVar24 + 0x38" (identifier "uVar24") (+ "+") (number_literal "0x38")) () ")"))))) (, ",") (binary_expression "(*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0" (parenthesized_expression "(*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4)" (( "(") (binary_expression "*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4" (pointer_expression "*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1)" (* "*") (cast_expression "(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)(uVar24 + 0x38) + 1)" (( "(") (binary_expression "*(undefined8 **)(uVar24 + 0x38) + 1" (pointer_expression "*(undefined8 **)(uVar24 + 0x38)" (* "*") (cast_expression "(undefined8 **)(uVar24 + 0x38)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar24 + 0x38)" (( "(") (binary_expression "uVar24 + 0x38" (identifier "uVar24") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }\n        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);\n        puVar10 = puVar12;\n      }" ({ "{") (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");\n        }" ({ "{") (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" (( "(") (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (* "*") (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (+ "+") (number_literal "6")) () ")"))))) () ")")) (compound_statement "{\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" ({ "{") (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" (return "return") (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00169320(lVar15)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00169320(lVar15)" (identifier "FUN_00169320") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (; ";")) (if_statement "if ((char)puVar12 != '\0') {\n            return puVar12;\n          }" (if "if") (parenthesized_expression "((char)puVar12 != '\0')" (( "(") (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar12")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            return puVar12;\n          }" ({ "{") (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xc95,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xc95") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = iVar9 - *(int *)(puVar12 + 0x59);" (assignment_expression "iVar9 = iVar9 - *(int *)(puVar12 + 0x59)" (identifier "iVar9") (= "=") (binary_expression "iVar9 - *(int *)(puVar12 + 0x59)" (identifier "iVar9") (- "-") (pointer_expression "*(int *)(puVar12 + 0x59)" (* "*") (cast_expression "(int *)(puVar12 + 0x59)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x59)" (( "(") (binary_expression "puVar12 + 0x59" (identifier "puVar12") (+ "+") (number_literal "0x59")) () ")")))))) (; ";")) (expression_statement "puVar10 = puVar12;" (assignment_expression "puVar10 = puVar12" (identifier "puVar10") (= "=") (identifier "puVar12")) (; ";")) (} "}"))) (expression_statement "*unaff_RBP = *unaff_RBP + iVar9;" (assignment_expression "*unaff_RBP = *unaff_RBP + iVar9" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (binary_expression "*unaff_RBP + iVar9" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (+ "+") (identifier "iVar9"))) (; ";")) (return_statement "return puVar10;" (return "return") (identifier "puVar10") (; ";"))) (case_statement "case (undefined8 *)0x13:\n      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);\n      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;\n      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }\n      break;" (case "case") (cast_expression "(undefined8 *)0x13" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x13")) (: ":") (expression_statement "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(undefined8 **)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;" (if "if") (parenthesized_expression "(puVar13 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined8 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00161e86;" (goto "goto") (statement_identifier "LAB_00161e86") (; ";"))) (if_statement "if (*(char *)((long)puVar13 + 0x2a61) == '\0') {\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)((long)puVar13 + 0x2a61) == '\0')" (( "(") (binary_expression "*(char *)((long)puVar13 + 0x2a61) == '\0'" (pointer_expression "*(char *)((long)puVar13 + 0x2a61)" (* "*") (cast_expression "(char *)((long)puVar13 + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar13 + 0x2a61)" (( "(") (binary_expression "(long)puVar13 + 0x2a61" (cast_expression "(long)puVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar13")) (+ "+") (number_literal "0x2a61")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }\n      }" ({ "{") (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }\n        else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);\n          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }\n        }" ({ "{") (expression_statement "puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);" (assignment_expression "puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (identifier "puVar13") (= "=") (binary_expression "(undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (cast_expression "(undefined8 *)(ulong)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)PTR_DAT_003f85c0 + 0x30)" (( "(") (binary_expression "*(long *)PTR_DAT_003f85c0 + 0x30" (pointer_expression "*(long *)PTR_DAT_003f85c0" (* "*") (cast_expression "(long *)PTR_DAT_003f85c0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_003f85c0"))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }" (if "if") (parenthesized_expression "(((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'))" (( "(") (binary_expression "((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&\n             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (parenthesized_expression "((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1)" (( "(") (binary_expression "(int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1" (cast_expression "(int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (* "*") (cast_expression "(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)PTR_DAT_003f85c0 + 0x30)" (( "(") (binary_expression "*(long *)PTR_DAT_003f85c0 + 0x30" (pointer_expression "*(long *)PTR_DAT_003f85c0" (* "*") (cast_expression "(long *)PTR_DAT_003f85c0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_003f85c0"))) (+ "+") (number_literal "0x30")) () ")"))))) (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')" (( "(") (comma_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0'" (assignment_expression "puVar13 = (undefined8 *)FUN_00169320(lVar15)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)FUN_00169320(lVar15)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00169320(lVar15)" (identifier "FUN_00169320") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (, ",") (binary_expression "(char)puVar13 == '\0'" (cast_expression "(char)puVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n                    \n            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");\n          }" ({ "{") (expression_statement "FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xce7,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xce7") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" (else "else") (compound_statement "{\n          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;\n          *unaff_RBP = uVar28;\n          puVar13 = (undefined8 *)(ulong)uVar28;\n        }" ({ "{") (expression_statement "uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;" (assignment_expression "uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9" (identifier "uVar28") (= "=") (binary_expression "(*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9" (parenthesized_expression "(*unaff_RBP + *(int *)(puVar12 + 0x59))" (( "(") (binary_expression "*unaff_RBP + *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (+ "+") (pointer_expression "*(int *)(puVar12 + 0x59)" (* "*") (cast_expression "(int *)(puVar12 + 0x59)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x59)" (( "(") (binary_expression "puVar12 + 0x59" (identifier "puVar12") (+ "+") (number_literal "0x59")) () ")"))))) () ")")) (- "-") (identifier "iVar9"))) (; ";")) (expression_statement "*unaff_RBP = uVar28;" (assignment_expression "*unaff_RBP = uVar28" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar13 = (undefined8 *)(ulong)uVar28;" (assignment_expression "puVar13 = (undefined8 *)(ulong)uVar28" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(ulong)uVar28" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar28")))) (; ";")) (} "}")))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (undefined8 *)0x18:" (case "case") (cast_expression "(undefined8 *)0x18" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x18")) (: ":")) (case_statement "case (undefined8 *)0x19:\n      *(undefined4 *)((long)param_1 + 4) = 2;\n      if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" (case "case") (cast_expression "(undefined8 *)0x19" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x19")) (: ":") (expression_statement "*(undefined4 *)((long)param_1 + 4) = 2;" (assignment_expression "*(undefined4 *)((long)param_1 + 4) = 2" (pointer_expression "*(undefined4 *)((long)param_1 + 4)" (* "*") (cast_expression "(undefined4 *)((long)param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 4)" (( "(") (binary_expression "(long)param_1 + 4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar8 == 2) {\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }\n      else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" (if "if") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }\n        iVar8 = *(int *)*param_5;\n        if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }\n        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n        if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }\nLAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }\n        *(undefined2 *)unaff_RBP = 0x9066;\n      }" ({ "{") (if_statement "if (puVar12 == (undefined8 *)0x0) {\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }\n          puVar12 = (undefined8 *)FUN_00169320(lVar15);\n          if ((char)puVar12 != '\0') {\n            return puVar12;\n          }\n                    \n          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");\n        }" ({ "{") (if_statement "if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6))" (( "(") (binary_expression "0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (* "*") (cast_expression "(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)PTR_DAT_003f85c0 + 6)" (( "(") (binary_expression "*(undefined8 **)PTR_DAT_003f85c0 + 6" (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (+ "+") (number_literal "6")) () ")"))))) () ")")) (compound_statement "{\n            return *(undefined8 **)PTR_DAT_003f85c0;\n          }" ({ "{") (return_statement "return *(undefined8 **)PTR_DAT_003f85c0;" (return "return") (pointer_expression "*(undefined8 **)PTR_DAT_003f85c0" (* "*") (cast_expression "(undefined8 **)PTR_DAT_003f85c0" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_003f85c0"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined8 *)FUN_00169320(lVar15);" (assignment_expression "puVar12 = (undefined8 *)FUN_00169320(lVar15)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00169320(lVar15)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00169320(lVar15)" (identifier "FUN_00169320") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (; ";")) (if_statement "if ((char)puVar12 != '\0') {\n            return puVar12;\n          }" (if "if") (parenthesized_expression "((char)puVar12 != '\0')" (( "(") (binary_expression "(char)puVar12 != '\0'" (cast_expression "(char)puVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar12")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            return puVar12;\n          }" ({ "{") (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xc2a,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xc2a") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (if_statement "if (iVar30 == 0x27) {\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }" (if "if") (parenthesized_expression "(iVar30 == 0x27)" (( "(") (binary_expression "iVar30 == 0x27" (identifier "iVar30") (== "==") (number_literal "0x27")) () ")")) (compound_statement "{\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -1) = 5;\n          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);\n          return puVar12;\n        }" ({ "{") (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 - 2)" (( "(") (binary_expression "iVar8 - 2" (identifier "iVar8") (- "-") (number_literal "2")) () ")"))))) () ")")) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" (if "if") (parenthesized_expression "((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d))" (( "(") (binary_expression "(*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)" (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != -0x73)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -2) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (!= "!=") (number_literal "-0x73")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((long)unaff_RBP + -1) != -0x7d)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -1) != -0x7d" (pointer_expression "*(char *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")")))) (!= "!=") (number_literal "-0x7d")) () ")"))) () ")")) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)unaff_RBP + -1) = 5;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -1) = 5" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);" (assignment_expression "*unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (binary_expression "(iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59)" (parenthesized_expression "(iVar9 + *unaff_RBP)" (( "(") (binary_expression "iVar9 + *unaff_RBP" (identifier "iVar9") (+ "+") (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP"))) () ")")) (- "-") (pointer_expression "*(int *)(puVar12 + 0x59)" (* "*") (cast_expression "(int *)(puVar12 + 0x59)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x59)" (( "(") (binary_expression "puVar12 + 0x59" (identifier "puVar12") (+ "+") (number_literal "0x59")) () ")")))))) (; ";")) (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 2);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 2)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(ulong)(iVar8 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 + 2)" (( "(") (binary_expression "iVar8 + 2" (identifier "iVar8") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if (unaff_R12 < puVar13) {\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" (if "if") (parenthesized_expression "(unaff_R12 < puVar13)" (( "(") (binary_expression "unaff_R12 < puVar13" (identifier "unaff_R12") (< "<") (identifier "puVar13")) () ")")) (compound_statement "{\n          uVar14 = gettext("TLS relocation out of range");\nLAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n        }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (labeled_statement "LAB_00161333:\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (statement_identifier "LAB_00161333") (: ":") (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))))) (; ";"))) (} "}"))) (labeled_statement "LAB_00160f46:\n        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (statement_identifier "LAB_00160f46") (: ":") (if_statement "if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" (if "if") (parenthesized_expression "(((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10'))" (( "(") (binary_expression "((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')" (parenthesized_expression "((char)*unaff_RBP != -1)" (( "(") (binary_expression "(char)*unaff_RBP != -1" (cast_expression "(char)*unaff_RBP" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP"))) (!= "!=") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((long)unaff_RBP + 1) != '\x10')" (( "(") (binary_expression "*(char *)((long)unaff_RBP + 1) != '\x10'" (pointer_expression "*(char *)((long)unaff_RBP + 1)" (* "*") (cast_expression "(char *)((long)unaff_RBP + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + 1)" (( "(") (binary_expression "(long)unaff_RBP + 1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          uVar20 = *(undefined4 *)*param_5;\n          uVar14 = gettext("TLS relocation against invalid instruction");\n          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n        }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))))) (; ";")) (} "}")))) (expression_statement "*(undefined2 *)unaff_RBP = 0x9066;" (assignment_expression "*(undefined2 *)unaff_RBP = 0x9066" (pointer_expression "*(undefined2 *)unaff_RBP" (* "*") (cast_expression "(undefined2 *)unaff_RBP" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_RBP"))) (= "=") (number_literal "0x9066")) (; ";")) (} "}")) (else_clause "else {\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" (else "else") (compound_statement "{\n        if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }\n        if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }\n        uVar28 = *(uint *)(*param_5 + 4) >> 8;\n        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);\n        if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }\n        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\nLAB_00160de8:\n        uVar28 = iVar9 + iVar31;\n        if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }\nLAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;\n      }" ({ "{") (if_statement "if (iVar8 == 3) {\n          iVar31 = 1;\n          iVar9 = 0;\n        }\n        else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" (if "if") (parenthesized_expression "(iVar8 == 3)" (( "(") (binary_expression "iVar8 == 3" (identifier "iVar8") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          iVar31 = 1;\n          iVar9 = 0;\n        }" ({ "{") (expression_statement "iVar31 = 1;" (assignment_expression "iVar31 = 1" (identifier "iVar31") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" (else "else") (if_statement "if ((iVar30 == 0x27) && (iVar8 == 0)) {\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }\n        else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" (if "if") (parenthesized_expression "((iVar30 == 0x27) && (iVar8 == 0))" (( "(") (binary_expression "(iVar30 == 0x27) && (iVar8 == 0)" (parenthesized_expression "(iVar30 == 0x27)" (( "(") (binary_expression "iVar30 == 0x27" (identifier "iVar30") (== "==") (number_literal "0x27")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          lVar22 = extraout_RDX[4];\n          if (lVar22 == 0) goto LAB_00161eb6;\n          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          lVar5 = extraout_RDX[6];\n          if (lVar5 == 0) goto LAB_00161ee6;\n          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;\n          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);\n          iVar31 = 4;\n        }" ({ "{") (expression_statement "lVar22 = extraout_RDX[4];" (assignment_expression "lVar22 = extraout_RDX[4]" (identifier "lVar22") (= "=") (subscript_expression "extraout_RDX[4]" (identifier "extraout_RDX") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (lVar22 == 0) goto LAB_00161eb6;" (if "if") (parenthesized_expression "(lVar22 == 0)" (( "(") (binary_expression "lVar22 == 0" (identifier "lVar22") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161eb6;" (goto "goto") (statement_identifier "LAB_00161eb6") (; ";"))) (if_statement "if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;" (if "if") (parenthesized_expression "((*(byte *)(lVar22 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar22 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar22 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar22 + 0x20) & 2" (pointer_expression "*(byte *)(lVar22 + 0x20)" (* "*") (cast_expression "(byte *)(lVar22 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar22 + 0x20)" (( "(") (binary_expression "lVar22 + 0x20" (identifier "lVar22") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161e9e;" (goto "goto") (statement_identifier "LAB_00161e9e") (; ";"))) (expression_statement "lVar5 = extraout_RDX[6];" (assignment_expression "lVar5 = extraout_RDX[6]" (identifier "lVar5") (= "=") (subscript_expression "extraout_RDX[6]" (identifier "extraout_RDX") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (lVar5 == 0) goto LAB_00161ee6;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161ee6;" (goto "goto") (statement_identifier "LAB_00161ee6") (; ";"))) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;" (if "if") (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar5 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar5 + 0x20) & 2" (pointer_expression "*(byte *)(lVar5 + 0x20)" (* "*") (cast_expression "(byte *)(lVar5 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161e9e;" (goto "goto") (statement_identifier "LAB_00161e9e") (; ";"))) (expression_statement "iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);" (assignment_expression "iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10)" (identifier "iVar9") (= "=") (binary_expression "(int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10)" (cast_expression "(int)*(undefined8 *)(lVar22 + 0x10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(undefined8 *)(lVar22 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar22 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar22 + 0x10)" (( "(") (binary_expression "lVar22 + 0x10" (identifier "lVar22") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (pointer_expression "*(int *)(lVar5 + 0x10)" (* "*") (cast_expression "(int *)(lVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" (identifier "iVar31") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n          iVar31 = 4;\n          iVar9 = 0;\n        }" (else "else") (compound_statement "{\n          iVar31 = 4;\n          iVar9 = 0;\n        }" ({ "{") (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" (identifier "iVar31") (= "=") (number_literal "4")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (if_statement "if (lVar15 != 0) {\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }" (if "if") (parenthesized_expression "(lVar15 != 0)" (( "(") (binary_expression "lVar15 != 0" (identifier "lVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar23 = (int *)(lVar15 + 0x28);\n          piVar11 = piVar23;\n          do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);\n                    \n          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");\n        }" ({ "{") (expression_statement "piVar23 = (int *)(lVar15 + 0x28);" (assignment_expression "piVar23 = (int *)(lVar15 + 0x28)" (identifier "piVar23") (= "=") (cast_expression "(int *)(lVar15 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "piVar11 = piVar23;" (assignment_expression "piVar11 = piVar23" (identifier "piVar11") (= "=") (identifier "piVar23")) (; ";")) (do_statement "do {\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          } while (piVar11 != (int *)0x0);" (do "do") (compound_statement "{\n            if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }\n            piVar11 = *(int **)(piVar11 + 2);\n          }" ({ "{") (if_statement "if (*piVar11 == iVar31) {\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }" (if "if") (parenthesized_expression "(*piVar11 == iVar31)" (( "(") (binary_expression "*piVar11 == iVar31" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (identifier "iVar31")) () ")")) (compound_statement "{\n              if (piVar11[1] != -1) goto LAB_00160da0;\n              break;\n            }" ({ "{") (if_statement "if (piVar11[1] != -1) goto LAB_00160da0;" (if "if") (parenthesized_expression "(piVar11[1] != -1)" (( "(") (binary_expression "piVar11[1] != -1" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00160da0;" (goto "goto") (statement_identifier "LAB_00160da0") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar11 = *(int **)(piVar11 + 2);" (assignment_expression "piVar11 = *(int **)(piVar11 + 2)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(piVar11 + 2)" (* "*") (cast_expression "(int **)(piVar11 + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar11 + 2)" (( "(") (binary_expression "piVar11 + 2" (identifier "piVar11") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xc43,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xc43") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar28 = *(uint *)(*param_5 + 4) >> 8;" (assignment_expression "uVar28 = *(uint *)(*param_5 + 4) >> 8" (identifier "uVar28") (= "=") (binary_expression "*(uint *)(*param_5 + 4) >> 8" (pointer_expression "*(uint *)(*param_5 + 4)" (* "*") (cast_expression "(uint *)(*param_5 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 4)" (( "(") (binary_expression "*param_5 + 4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);" (assignment_expression "cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0)" (identifier "cVar7") (= "=") (call_expression "(**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x158))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x158)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x158)" (* "*") (cast_expression "(code **)(*plVar2 + 0x158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x158)" (( "(") (binary_expression "*plVar2 + 0x158" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x158")) () ")"))))) () ")")) (argument_list "(plVar2,uVar28,iVar31,0)" (( "(") (identifier "plVar2") (, ",") (identifier "uVar28") (, ",") (identifier "iVar31") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') {\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");\n        }" ({ "{") (expression_statement "FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");" (call_expression "FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls")" (identifier "FUN_00199900") (argument_list "("../../gold/i386.cc",0xc49,"relocate_tls")" (( "(") (string_literal ""../../gold/i386.cc"" (" """) (string_content "../../gold/i386.cc") (" """)) (, ",") (number_literal "0xc49") (, ",") (string_literal ""relocate_tls"" (" """) (string_content "relocate_tls") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);" (assignment_expression "uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0)" (identifier "uVar28") (= "=") (call_expression "(**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x160))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x160)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x160)" (* "*") (cast_expression "(code **)(*plVar2 + 0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x160)" (( "(") (binary_expression "*plVar2 + 0x160" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x160")) () ")"))))) () ")")) (argument_list "(plVar2,uVar28,iVar31,0)" (( "(") (identifier "plVar2") (, ",") (identifier "uVar28") (, ",") (identifier "iVar31") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" (identifier "lVar15") (= "=") (subscript_expression "extraout_RDX[4]" (identifier "extraout_RDX") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161eb6;" (goto "goto") (statement_identifier "LAB_00161eb6") (; ";"))) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" (* "*") (cast_expression "(byte *)(lVar15 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161e9e;" (goto "goto") (statement_identifier "LAB_00161e9e") (; ";"))) (expression_statement "puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));" (assignment_expression "puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10))" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)uVar28 - *(long *)(lVar15 + 0x10))" (( "(") (binary_expression "(ulong)uVar28 - *(long *)(lVar15 + 0x10)" (cast_expression "(ulong)uVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar28")) (- "-") (pointer_expression "*(long *)(lVar15 + 0x10)" (* "*") (cast_expression "(long *)(lVar15 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x10)" (( "(") (binary_expression "lVar15 + 0x10" (identifier "lVar15") (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar31 = (int)puVar13;" (assignment_expression "iVar31 = (int)puVar13" (identifier "iVar31") (= "=") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) (; ";")) (labeled_statement "LAB_00160de8:\n        uVar28 = iVar9 + iVar31;" (statement_identifier "LAB_00160de8") (: ":") (expression_statement "uVar28 = iVar9 + iVar31;" (assignment_expression "uVar28 = iVar9 + iVar31" (identifier "uVar28") (= "=") (binary_expression "iVar9 + iVar31" (identifier "iVar9") (+ "+") (identifier "iVar31"))) (; ";"))) (if_statement "if (iVar8 == 3) {\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }\n        else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" (if "if") (parenthesized_expression "(iVar8 == 3)" (( "(") (binary_expression "iVar8 == 3" (identifier "iVar8") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          iVar8 = *(int *)*param_5;\n          if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }\n          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }\n          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);\n          if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }\n          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }\n          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;\n        }" ({ "{") (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (if_statement "if (iVar30 != 0x27) {\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }" (if "if") (parenthesized_expression "(iVar30 != 0x27)" (( "(") (binary_expression "iVar30 != 0x27" (identifier "iVar30") (!= "!=") (number_literal "0x27")) () ")")) (compound_statement "{\n            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);\n            if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }\n            goto LAB_00160f46;\n          }" ({ "{") (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 2);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 2)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(ulong)(iVar8 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 + 2)" (( "(") (binary_expression "iVar8 + 2" (identifier "iVar8") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if (unaff_R12 < puVar13) {\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }" (if "if") (parenthesized_expression "(unaff_R12 < puVar13)" (( "(") (binary_expression "unaff_R12 < puVar13" (identifier "unaff_R12") (< "<") (identifier "puVar13")) () ")")) (compound_statement "{\n              uVar14 = gettext("TLS relocation out of range");\n              goto LAB_00161333;\n            }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (goto_statement "goto LAB_00161333;" (goto "goto") (statement_identifier "LAB_00161333") (; ";")) (} "}"))) (goto_statement "goto LAB_00160f46;" (goto "goto") (statement_identifier "LAB_00160f46") (; ";")) (} "}"))) (if_statement "if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" (if "if") (parenthesized_expression "(unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2))" (( "(") (binary_expression "unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)" (identifier "unaff_R12") (< "<") (cast_expression "(undefined8 *)(ulong)(iVar8 - 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 - 2)" (( "(") (binary_expression "iVar8 - 2" (identifier "iVar8") (- "-") (number_literal "2")) () ")"))))) () ")")) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n            iVar8 = *(int *)*param_5;\n          }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)*param_5;" (assignment_expression "iVar8 = *(int *)*param_5" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_5" (* "*") (cast_expression "(int *)*param_5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined8 *)(ulong)(iVar8 + 4);" (assignment_expression "puVar13 = (undefined8 *)(ulong)(iVar8 + 4)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(ulong)(iVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(iVar8 + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (unaff_R12 < puVar13) {\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" (if "if") (parenthesized_expression "(unaff_R12 < puVar13)" (( "(") (binary_expression "unaff_R12 < puVar13" (identifier "unaff_R12") (< "<") (identifier "puVar13")) () ")")) (compound_statement "{\n            uVar14 = gettext("TLS relocation out of range");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);\n          }" ({ "{") (expression_statement "uVar14 = gettext("TLS relocation out of range");" (assignment_expression "uVar14 = gettext("TLS relocation out of range")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation out of range")" (identifier "gettext") (argument_list "("TLS relocation out of range")" (( "(") (string_literal ""TLS relocation out of range"" (" """) (string_content "TLS relocation out of range") (" """)) () ")")))) (; ";")) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00191eb0(uVar24,param_4,iVar8,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,iVar8,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "iVar8") (, ",") (identifier "uVar14") () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" (if "if") (parenthesized_expression "((*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d))" (( "(") (binary_expression "(*(char *)((long)unaff_RBP + -2) != -0x73) ||\n             (*(char *)((long)unaff_RBP + -1) != -0x7d)" (parenthesized_expression "(*(char *)((long)unaff_RBP + -2) != -0x73)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -2) != -0x73" (pointer_expression "*(char *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (!= "!=") (number_literal "-0x73")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((long)unaff_RBP + -1) != -0x7d)" (( "(") (binary_expression "*(char *)((long)unaff_RBP + -1) != -0x7d" (pointer_expression "*(char *)((long)unaff_RBP + -1)" (* "*") (cast_expression "(char *)((long)unaff_RBP + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -1)" (( "(") (binary_expression "(long)unaff_RBP + -1" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-1")) () ")")))) (!= "!=") (number_literal "-0x7d")) () ")"))) () ")")) (compound_statement "{\n            uVar20 = *(undefined4 *)*param_5;\n            uVar14 = gettext("TLS relocation against invalid instruction");\n            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);\n          }" ({ "{") (expression_statement "uVar20 = *(undefined4 *)*param_5;" (assignment_expression "uVar20 = *(undefined4 *)*param_5" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)*param_5" (* "*") (cast_expression "(undefined4 *)*param_5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))))) (; ";")) (expression_statement "uVar14 = gettext("TLS relocation against invalid instruction");" (assignment_expression "uVar14 = gettext("TLS relocation against invalid instruction")" (identifier "uVar14") (= "=") (call_expression "gettext("TLS relocation against invalid instruction")" (identifier "gettext") (argument_list "("TLS relocation against invalid instruction")" (( "(") (string_literal ""TLS relocation against invalid instruction"" (" """) (string_content "TLS relocation against invalid instruction") (" """)) () ")")))) (; ";")) (expression_statement "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);" (assignment_expression "puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00191eb0(uVar24,param_4,uVar20,uVar14)" (identifier "FUN_00191eb0") (argument_list "(uVar24,param_4,uVar20,uVar14)" (( "(") (identifier "uVar24") (, ",") (identifier "param_4") (, ",") (identifier "uVar20") (, ",") (identifier "uVar14") () ")"))))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)unaff_RBP + -2) = 0x8b;" (assignment_expression "*(undefined1 *)((long)unaff_RBP + -2) = 0x8b" (pointer_expression "*(undefined1 *)((long)unaff_RBP + -2)" (* "*") (cast_expression "(undefined1 *)((long)unaff_RBP + -2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)unaff_RBP + -2)" (( "(") (binary_expression "(long)unaff_RBP + -2" (cast_expression "(long)unaff_RBP" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "unaff_RBP")) (+ "+") (number_literal "-2")) () ")")))) (= "=") (number_literal "0x8b")) (; ";")) (} "}")) (else_clause "else {\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" (else "else") (compound_statement "{\n          if (iVar8 != 0) goto LAB_00160e10;\n          if (iVar30 != 0x27) {\n            return puVar13;\n          }\n        }" ({ "{") (if_statement "if (iVar8 != 0) goto LAB_00160e10;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00160e10;" (goto "goto") (statement_identifier "LAB_00160e10") (; ";"))) (if_statement "if (iVar30 != 0x27) {\n            return puVar13;\n          }" (if "if") (parenthesized_expression "(iVar30 != 0x27)" (( "(") (binary_expression "iVar30 != 0x27" (identifier "iVar30") (!= "!=") (number_literal "0x27")) () ")")) (compound_statement "{\n            return puVar13;\n          }" ({ "{") (return_statement "return puVar13;" (return "return") (identifier "puVar13") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00160c26:\n        *unaff_RBP = *unaff_RBP + uVar28;" (statement_identifier "LAB_00160c26") (: ":") (expression_statement "*unaff_RBP = *unaff_RBP + uVar28;" (assignment_expression "*unaff_RBP = *unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (binary_expression "*unaff_RBP + uVar28" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (+ "+") (identifier "uVar28"))) (; ";"))) (} "}"))))) (} "}"))) (return_statement "return puVar13;" (return "return") (identifier "puVar13") (; ";")) (} "}"))) (expression_statement "uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];" (assignment_expression "uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21]" (identifier "uVar29") (= "=") (cast_expression "(uint)(byte)PTR_DAT_003f85c0[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR_DAT_003f85c0[0x21]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR_DAT_003f85c0[0x21]" (identifier "PTR_DAT_003f85c0") ([ "[") (number_literal "0x21") (] "]"))))) (; ";")) (if_statement "if (PTR_DAT_003f85c0[0x21] == 0) {\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }\n  else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" (if "if") (parenthesized_expression "(PTR_DAT_003f85c0[0x21] == 0)" (( "(") (binary_expression "PTR_DAT_003f85c0[0x21] == 0" (subscript_expression "PTR_DAT_003f85c0[0x21]" (identifier "PTR_DAT_003f85c0") ([ "[") (number_literal "0x21") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }\n    if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }\n    uVar19 = uVar29;\n    if (bVar18 == 3) goto LAB_0016025b;\nLAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }\n    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n    if (lVar15 == 0) goto LAB_001605fc;\n    if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }\n  }" ({ "{") (expression_statement "bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;" (assignment_expression "bVar18 = *(byte *)((long)param_1 + 0x3a) & 7" (identifier "bVar18") (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3a)" (( "(") (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }" (if "if") (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3a)" (( "(") (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 3);\n      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;\nLAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;\nLAB_001604b0:\n      uVar19 = 0;\n      goto LAB_0016025b;\n    }" ({ "{") (expression_statement "iVar9 = *(int *)(param_1 + 3);" (assignment_expression "iVar9 = *(int *)(param_1 + 3)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1" (identifier "bVar16") (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3b)" (( "(") (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;" (if "if") (parenthesized_expression "((iVar9 == 0) && (bVar16 != 0))" (( "(") (binary_expression "(iVar9 == 0) && (bVar16 != 0)" (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar16 != 0)" (( "(") (binary_expression "bVar16 != 0" (identifier "bVar16") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00160229;" (goto "goto") (statement_identifier "LAB_00160229") (; ";"))) (labeled_statement "LAB_00160320:\n      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;" (statement_identifier "LAB_00160320") (: ":") (if_statement "if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;" (if "if") (parenthesized_expression "(iVar9 != 0xfff1 || bVar16 != 0)" (( "(") (binary_expression "iVar9 != 0xfff1 || bVar16 != 0" (binary_expression "iVar9 != 0xfff1" (identifier "iVar9") (!= "!=") (number_literal "0xfff1")) (|| "||") (binary_expression "bVar16 != 0" (identifier "bVar16") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00160333;" (goto "goto") (statement_identifier "LAB_00160333") (; ";")))) (labeled_statement "LAB_001604b0:\n      uVar19 = 0;" (statement_identifier "LAB_001604b0") (: ":") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_0016025b;" (goto "goto") (statement_identifier "LAB_0016025b") (; ";")) (} "}"))) (if_statement "if (bVar18 == 4) {\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" (if "if") (parenthesized_expression "(bVar18 == 4)" (( "(") (binary_expression "bVar18 == 4" (identifier "bVar18") (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;\n      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;\n      if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }\n    }" ({ "{") (labeled_statement "LAB_00160229:\n      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;" (statement_identifier "LAB_00160229") (: ":") (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001605fc;" (goto "goto") (statement_identifier "LAB_001605fc") (; ";")))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x2a61")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001604b0;" (goto "goto") (statement_identifier "LAB_001604b0") (; ";"))) (if_statement "if (bVar18 == 0) {\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }" (if "if") (parenthesized_expression "(bVar18 == 0)" (( "(") (binary_expression "bVar18 == 0" (identifier "bVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 3);\n        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;\n        goto LAB_00160320;\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(param_1 + 3);" (assignment_expression "iVar9 = *(int *)(param_1 + 3)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1" (identifier "bVar16") (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3b)" (( "(") (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00160320;" (goto "goto") (statement_identifier "LAB_00160320") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" (identifier "uVar19") (= "=") (identifier "uVar29")) (; ";")) (if_statement "if (bVar18 == 3) goto LAB_0016025b;" (if "if") (parenthesized_expression "(bVar18 == 3)" (( "(") (binary_expression "bVar18 == 3" (identifier "bVar18") (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_0016025b;" (goto "goto") (statement_identifier "LAB_0016025b") (; ";"))) (labeled_statement "LAB_00160333:\n    if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" (statement_identifier "LAB_00160333") (: ":") (if_statement "if ((uVar28 & 1) == 0) {\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" (if "if") (parenthesized_expression "((uVar28 & 1) == 0)" (( "(") (binary_expression "(uVar28 & 1) == 0" (parenthesized_expression "(uVar28 & 1)" (( "(") (binary_expression "uVar28 & 1" (identifier "uVar28") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }\n      if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }\n      if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }\n      goto LAB_0016025b;\n    }" ({ "{") (labeled_statement "LAB_00160470:\n      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }" (statement_identifier "LAB_00160470") (: ":") (if_statement "if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {\n        return puVar12;\n      }" (if "if") (parenthesized_expression "(((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1))" (( "(") (binary_expression "((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)" (parenthesized_expression "((uVar28 & 8) != 0)" (( "(") (binary_expression "(uVar28 & 8) != 0" (parenthesized_expression "(uVar28 & 8)" (( "(") (binary_expression "uVar28 & 8" (identifier "uVar28") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)((long)param_1 + 0x24) != -1)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x24) != -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" (* "*") (cast_expression "(int *)((long)param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x24)" (( "(") (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        return puVar12;\n      }" ({ "{") (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}")))) (if_statement "if ((uVar28 & 0x10) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }" (if "if") (parenthesized_expression "((uVar28 & 0x10) == 0)" (( "(") (binary_expression "(uVar28 & 0x10) == 0" (parenthesized_expression "(uVar28 & 0x10)" (( "(") (binary_expression "uVar28 & 0x10" (identifier "uVar28") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) goto LAB_001605fc;\n        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;\n      }" ({ "{") (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001605fc;" (goto "goto") (statement_identifier "LAB_001605fc") (; ";"))) (if_statement "if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;" (if "if") (parenthesized_expression "(((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1))" (( "(") (binary_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&\n           (*(int *)((long)param_1 + 0x24) != -1)" (parenthesized_expression "((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0'))" (( "(") (binary_expression "(*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')" (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) == '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0x2a61) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" (* "*") (cast_expression "(char *)(lVar15 + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x2a61)" (( "(") (binary_expression "lVar15 + 0x2a61" (identifier "lVar15") (+ "+") (number_literal "0x2a61")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(lVar15 + 0x42d1) == '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0x42d1) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x42d1)" (* "*") (cast_expression "(char *)(lVar15 + 0x42d1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x42d1)" (( "(") (binary_expression "lVar15 + 0x42d1" (identifier "lVar15") (+ "+") (number_literal "0x42d1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)((long)param_1 + 0x24) != -1)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x24) != -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" (* "*") (cast_expression "(int *)((long)param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x24)" (( "(") (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_001604b0;" (goto "goto") (statement_identifier "LAB_001604b0") (; ";"))) (} "}"))) (if_statement "if (bVar18 == 0) {\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" (if "if") (parenthesized_expression "(bVar18 == 0)" (( "(") (binary_expression "bVar18 == 0" (identifier "bVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;\n        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;" (assignment_expression "uVar19 = *(byte *)(param_1[2] + 0x3c) & 1" (identifier "uVar19") (= "=") (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_1[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x3c)" (( "(") (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)) {\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0))" (( "(") (binary_expression "((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&\n           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)" (parenthesized_expression "((*(byte *)(param_1[2] + 0x3c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_1[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_1[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x3c)" (( "(") (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0)" (( "(") (comma_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,\n           uVar19 = (uint)bVar6, bVar6 == 0" (assignment_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0" (identifier "bVar6") (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0" (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3b)" (( "(") (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (binary_expression "*(int *)(param_1 + 3) == 0" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (== "==") (number_literal "0")))) (, ",") (comma_expression "uVar19 = (uint)bVar6, bVar6 == 0" (assignment_expression "uVar19 = (uint)bVar6" (identifier "uVar19") (= "=") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (, ",") (binary_expression "bVar6 == 0" (identifier "bVar6") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\nLAB_001604f0:\n          uVar19 = uVar29;\n          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_001604f0:\n          uVar19 = uVar29;" (statement_identifier "LAB_001604f0") (: ":") (expression_statement "uVar19 = uVar29;" (assignment_expression "uVar19 = uVar29" (identifier "uVar19") (= "=") (identifier "uVar29")) (; ";"))) (if_statement "if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0))" (( "(") (binary_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&\n             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x39) & 3)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_1 + 0x39)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x39)" (( "(") (binary_expression "(long)param_1 + 0x39" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x39")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x3b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3b) & 0x10)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x3b) & 0x10" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3b)" (( "(") (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n            if (lVar15 == 0) goto LAB_001605fc;\n            bVar6 = *(byte *)(lVar15 + 0x2a61);\n            uVar19 = (uint)bVar6;\n            if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }\n          }" ({ "{") (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001605fc;" (goto "goto") (statement_identifier "LAB_001605fc") (; ";"))) (expression_statement "bVar6 = *(byte *)(lVar15 + 0x2a61);" (assignment_expression "bVar6 = *(byte *)(lVar15 + 0x2a61)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)(lVar15 + 0x2a61)" (* "*") (cast_expression "(byte *)(lVar15 + 0x2a61)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x2a61)" (( "(") (binary_expression "lVar15 + 0x2a61" (identifier "lVar15") (+ "+") (number_literal "0x2a61")) () ")"))))) (; ";")) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" (identifier "uVar19") (= "=") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (; ";")) (if_statement "if ((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))) {\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }" (if "if") (parenthesized_expression "((bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0'))))" (( "(") (binary_expression "(bVar6 != 0) &&\n               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))" (parenthesized_expression "(bVar6 != 0)" (( "(") (binary_expression "bVar6 != 0" (identifier "bVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')))" (( "(") (parenthesized_expression "(uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0'))" (( "(") (comma_expression "uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'\n                || (local_2a != '\0')" (assignment_expression "uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a)" (identifier "uVar19") (= "=") (call_expression "FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a)" (identifier "FUN_00241de0") (argument_list "(lVar15 + 0x9120,*param_1,0,&local_2a)" (( "(") (binary_expression "lVar15 + 0x9120" (identifier "lVar15") (+ "+") (number_literal "0x9120")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0") (, ",") (pointer_expression "&local_2a" (& "&") (identifier "local_2a")) () ")")))) (, ",") (binary_expression "(char)uVar19 == '\0'\n                || (local_2a != '\0')" (binary_expression "(char)uVar19 == '\0'" (cast_expression "(char)uVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar19")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(local_2a != '\0')" (( "(") (binary_expression "local_2a != '\0'" (identifier "local_2a") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n              if (lVar15 == 0) goto LAB_001605fc;\n              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;\n              uVar19 = (uint)bVar6;\n              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }\n            }" ({ "{") (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001605fc;" (goto "goto") (statement_identifier "LAB_001605fc") (; ";"))) (if_statement "if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;" (if "if") (parenthesized_expression "(*(char *)(lVar15 + 0xd21) != '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0xd21) != '\0'" (pointer_expression "*(char *)(lVar15 + 0xd21)" (* "*") (cast_expression "(char *)(lVar15 + 0xd21)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0xd21)" (( "(") (binary_expression "lVar15 + 0xd21" (identifier "lVar15") (+ "+") (number_literal "0xd21")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001604b0;" (goto "goto") (statement_identifier "LAB_001604b0") (; ";"))) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" (identifier "uVar19") (= "=") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 0xf) != 1)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 7) & 0xf)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 0xf" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;\n              }" ({ "{") (expression_statement "uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;" (assignment_expression "uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1" (identifier "uVar19") (= "=") (binary_expression "*(byte *)(lVar15 + 0xde9) ^ 1" (pointer_expression "*(byte *)(lVar15 + 0xde9)" (* "*") (cast_expression "(byte *)(lVar15 + 0xde9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0xde9)" (( "(") (binary_expression "lVar15 + 0xde9" (identifier "lVar15") (+ "+") (number_literal "0xde9")) () ")")))) (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" (else "else") (compound_statement "{\n        if (bVar18 != 4) goto LAB_001604f0;\n        uVar19 = (uint)bVar6;\n      }" ({ "{") (if_statement "if (bVar18 != 4) goto LAB_001604f0;" (if "if") (parenthesized_expression "(bVar18 != 4)" (( "(") (binary_expression "bVar18 != 4" (identifier "bVar18") (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_001604f0;" (goto "goto") (statement_identifier "LAB_001604f0") (; ";"))) (expression_statement "uVar19 = (uint)bVar6;" (assignment_expression "uVar19 = (uint)bVar6" (identifier "uVar19") (= "=") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0016025b;" (goto "goto") (statement_identifier "LAB_0016025b") (; ";")) (} "}")))) (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001605fc;" (goto "goto") (statement_identifier "LAB_001605fc") (; ";"))) (if_statement "if (*(byte *)(lVar15 + 0x2a61) == 0) {\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }\n    else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" (if "if") (parenthesized_expression "(*(byte *)(lVar15 + 0x2a61) == 0)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x2a61) == 0" (pointer_expression "*(byte *)(lVar15 + 0x2a61)" (* "*") (cast_expression "(byte *)(lVar15 + 0x2a61)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x2a61)" (( "(") (binary_expression "lVar15 + 0x2a61" (identifier "lVar15") (+ "+") (number_literal "0x2a61")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;\n      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);\n    }" ({ "{") (if_statement "if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;" (if "if") (parenthesized_expression "(*(byte *)(lVar15 + 0x42d1) == 0)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x42d1) == 0" (pointer_expression "*(byte *)(lVar15 + 0x42d1)" (* "*") (cast_expression "(byte *)(lVar15 + 0x42d1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x42d1)" (( "(") (binary_expression "lVar15 + 0x42d1" (identifier "lVar15") (+ "+") (number_literal "0x42d1")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00160470;" (goto "goto") (statement_identifier "LAB_00160470") (; ";"))) (expression_statement "uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);" (assignment_expression "uVar19 = (uint)*(byte *)(lVar15 + 0x42d1)" (identifier "uVar19") (= "=") (binary_expression "(uint)*(byte *)(lVar15 + 0x42d1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(lVar15 + 0x42d1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x42d1)" (( "(") (binary_expression "lVar15 + 0x42d1" (identifier "lVar15") (+ "+") (number_literal "0x42d1")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" (else "else") (compound_statement "{\n      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);\n    }" ({ "{") (expression_statement "uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);" (assignment_expression "uVar19 = (uint)*(byte *)(lVar15 + 0x2a61)" (identifier "uVar19") (= "=") (binary_expression "(uint)*(byte *)(lVar15 + 0x2a61)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(lVar15 + 0x2a61)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x2a61)" (( "(") (binary_expression "lVar15 + 0x2a61" (identifier "lVar15") (+ "+") (number_literal "0x2a61")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" (else "else") (compound_statement "{\n    uVar19 = 0;\nLAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;\n  }" ({ "{") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0016025b:\n    if ((uVar28 & 1) == 0) goto LAB_00160264;" (statement_identifier "LAB_0016025b") (: ":") (if_statement "if ((uVar28 & 1) == 0) goto LAB_00160264;" (if "if") (parenthesized_expression "((uVar28 & 1) == 0)" (( "(") (binary_expression "(uVar28 & 1) == 0" (parenthesized_expression "(uVar28 & 1)" (( "(") (binary_expression "uVar28 & 1" (identifier "uVar28") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00160264;" (goto "goto") (statement_identifier "LAB_00160264") (; ";")))) (} "}")))) (if_statement "if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1))" (( "(") (binary_expression "((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)" (parenthesized_expression "((uVar28 & 8) == 0)" (( "(") (binary_expression "(uVar28 & 8) == 0" (parenthesized_expression "(uVar28 & 8)" (( "(") (binary_expression "uVar28 & 8" (identifier "uVar28") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)((long)param_1 + 0x24) == -1)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x24) == -1" (pointer_expression "*(int *)((long)param_1 + 0x24)" (* "*") (cast_expression "(int *)((long)param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x24)" (( "(") (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;\n    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }\n  }" ({ "{") (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }\n    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" (if "if") (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3a)" (( "(") (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;\n    }" ({ "{") (if_statement "if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))\n      goto LAB_00160264;" (if "if") (parenthesized_expression "(((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))" (( "(") (binary_expression "((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||\n         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(param_1[2] + 0x3c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(param_1[2] + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(param_1[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_1[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x3c)" (( "(") (binary_expression "param_1[2] + 0x3c" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)))" (( "(") (parenthesized_expression "(*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))" (( "(") (binary_expression "*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)" (binary_expression "*(int *)(param_1 + 3) == 0" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x3b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3b)" (( "(") (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00160264;" (goto "goto") (statement_identifier "LAB_00160264") (; ";"))) (} "}")) (else_clause "else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" (else "else") (if_statement "if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;" (if "if") (parenthesized_expression "((*(byte *)((long)param_1 + 0x3a) & 7) == 4)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x3a) & 7) == 4" (parenthesized_expression "(*(byte *)((long)param_1 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_1 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3a)" (( "(") (binary_expression "(long)param_1 + 0x3a" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_00160264;" (goto "goto") (statement_identifier "LAB_00160264") (; ";"))))) (if_statement "if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }" (if "if") (parenthesized_expression "((*(byte *)((long)param_1 + 0x39) & 3) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x39) & 3)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_1 + 0x39)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x39)" (( "(") (binary_expression "(long)param_1 + 0x39" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x39")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;\n      if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }\n    }" ({ "{") (expression_statement "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;" (assignment_expression "bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4" (identifier "bVar6") (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3b) >> 4" (pointer_expression "*(byte *)((long)param_1 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3b)" (( "(") (binary_expression "(long)param_1 + 0x3b" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if ((bVar6 & 1) == 0) {\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }\n      else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" (if "if") (parenthesized_expression "((bVar6 & 1) == 0)" (( "(") (binary_expression "(bVar6 & 1) == 0" (parenthesized_expression "(bVar6 & 1)" (( "(") (binary_expression "bVar6 & 1" (identifier "bVar6") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n        if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }\n        if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 == 0) {\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");\n        }" ({ "{") (labeled_statement "LAB_001605fc:\n                    \n          FUN_00199900("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_001605fc") (: ":") (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00199900") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(char *)(lVar15 + 0x2a61) != '\0') {\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(lVar15 + 0x2a61) != '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar15 + 0x2a61)" (* "*") (cast_expression "(char *)(lVar15 + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x2a61)" (( "(") (binary_expression "lVar15 + 0x2a61" (identifier "lVar15") (+ "+") (number_literal "0x2a61")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);\n          if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }\n          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);\n          if (lVar15 == 0) goto LAB_001605fc;\n          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);\n          if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }\n        }" ({ "{") (expression_statement "cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);" (assignment_expression "cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29)" (identifier "cVar7") (= "=") (call_expression "FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29)" (identifier "FUN_00241de0") (argument_list "(lVar15 + 0x9120,*param_1,0,&local_29)" (( "(") (binary_expression "lVar15 + 0x9120" (identifier "lVar15") (+ "+") (number_literal "0x9120")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0") (, ",") (pointer_expression "&local_29" (& "&") (identifier "local_29")) () ")")))) (; ";")) (if_statement "if ((cVar7 != '\0') && (local_29 == '\0')) {\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }" (if "if") (parenthesized_expression "((cVar7 != '\0') && (local_29 == '\0'))" (( "(") (binary_expression "(cVar7 != '\0') && (local_29 == '\0')" (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_29 == '\0')" (( "(") (binary_expression "local_29 == '\0'" (identifier "local_29") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);\n          }" ({ "{") (labeled_statement "LAB_00160264:\n            return (undefined8 *)(ulong)(uVar19 ^ 1);" (statement_identifier "LAB_00160264") (: ":") (return_statement "return (undefined8 *)(ulong)(uVar19 ^ 1);" (return "return") (cast_expression "(undefined8 *)(ulong)(uVar19 ^ 1)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(uVar19 ^ 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar19 ^ 1)" (( "(") (binary_expression "uVar19 ^ 1" (identifier "uVar19") (^ "^") (number_literal "1")) () ")")))) (; ";"))) (} "}"))) (expression_statement "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_001605fc;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001605fc;" (goto "goto") (statement_identifier "LAB_001605fc") (; ";"))) (expression_statement "puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);" (assignment_expression "puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21)" (identifier "puVar12") (= "=") (binary_expression "(undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21)" (cast_expression "(undefined8 *)(ulong)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(byte *)(lVar15 + 0xd21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0xd21)" (( "(") (binary_expression "lVar15 + 0xd21" (identifier "lVar15") (+ "+") (number_literal "0xd21")) () ")"))))) (; ";")) (if_statement "if (*(byte *)(lVar15 + 0xd21) == 0) {\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }" (if "if") (parenthesized_expression "(*(byte *)(lVar15 + 0xd21) == 0)" (( "(") (binary_expression "*(byte *)(lVar15 + 0xd21) == 0" (pointer_expression "*(byte *)(lVar15 + 0xd21)" (* "*") (cast_expression "(byte *)(lVar15 + 0xd21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0xd21)" (( "(") (binary_expression "lVar15 + 0xd21" (identifier "lVar15") (+ "+") (number_literal "0xd21")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);\n            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }\n          }" ({ "{") (expression_statement "puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);" (assignment_expression "puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)(ulong)(uVar19 ^ 1)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(uVar19 ^ 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar19 ^ 1)" (( "(") (binary_expression "uVar19 ^ 1" (identifier "uVar19") (^ "^") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 7) & 0xf) != 1) {\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 0xf) != 1)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 7) & 0xf)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 0xf" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n              puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));\n            }" ({ "{") (expression_statement "puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));" (assignment_expression "puVar12 = (undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)\n                        (ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (call_expression "CONCAT31((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" (identifier "CONCAT31") (argument_list "((int3)(uVar19 >> 8),\n                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9))" (( "(") (call_expression "(int3)(uVar19 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar19 >> 8)" (( "(") (binary_expression "uVar19 >> 8" (identifier "uVar19") (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "(byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9)" (call_expression "(byte)(uVar19 ^ 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar19 ^ 1)" (( "(") (binary_expression "uVar19 ^ 1" (identifier "uVar19") (^ "^") (number_literal "1")) () ")"))) (| "|") (pointer_expression "*(byte *)(lVar15 + 0xde9)" (* "*") (cast_expression "(byte *)(lVar15 + 0xde9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0xde9)" (( "(") (binary_expression "lVar15 + 0xde9" (identifier "lVar15") (+ "+") (number_literal "0xde9")) () ")"))))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" (else "else") (compound_statement "{\n        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);\n      }" ({ "{") (expression_statement "puVar12 = (undefined8 *)(ulong)(bVar6 & 1);" (assignment_expression "puVar12 = (undefined8 *)(ulong)(bVar6 & 1)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)(ulong)(bVar6 & 1)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(bVar6 & 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(bVar6 & 1)" (( "(") (binary_expression "bVar6 & 1" (identifier "bVar6") (& "&") (number_literal "1")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }" (while "while") (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" (( "(") (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(piVar23 + 2)" (* "*") (cast_expression "(int **)(piVar23 + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar23 + 2)" (( "(") (binary_expression "piVar23 + 2" (identifier "piVar23") (+ "+") (number_literal "2")) () ")"))))) (, ",") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\nLAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }\n  }" ({ "{") (labeled_statement "LAB_00160da0:\n    if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" (statement_identifier "LAB_00160da0") (: ":") (if_statement "if (*piVar23 == iVar31) {\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" (if "if") (parenthesized_expression "(*piVar23 == iVar31)" (( "(") (binary_expression "*piVar23 == iVar31" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (== "==") (identifier "iVar31")) () ")")) (compound_statement "{\n      if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }\n      break;\n    }" ({ "{") (if_statement "if (piVar23[1] != 0xffffffff) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }" (if "if") (parenthesized_expression "(piVar23[1] != 0xffffffff)" (( "(") (binary_expression "piVar23[1] != 0xffffffff" (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));\n        iVar31 = (int)puVar13;\n        goto LAB_00160de8;\n      }" ({ "{") (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" (identifier "lVar15") (= "=") (subscript_expression "extraout_RDX[4]" (identifier "extraout_RDX") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161eb6;" (goto "goto") (statement_identifier "LAB_00161eb6") (; ";"))) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" (* "*") (cast_expression "(byte *)(lVar15 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161e9e;" (goto "goto") (statement_identifier "LAB_00161e9e") (; ";"))) (expression_statement "puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));" (assignment_expression "puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10))" (( "(") (binary_expression "(ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10)" (cast_expression "(ulong)(uint)piVar23[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)piVar23[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]")))) (- "-") (pointer_expression "*(long *)(lVar15 + 0x10)" (* "*") (cast_expression "(long *)(lVar15 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x10)" (( "(") (binary_expression "lVar15 + 0x10" (identifier "lVar15") (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar31 = (int)puVar13;" (assignment_expression "iVar31 = (int)puVar13" (identifier "iVar31") (= "=") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) (; ";")) (goto_statement "goto LAB_00160de8;" (goto "goto") (statement_identifier "LAB_00160de8") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00160bce;" (goto "goto") (statement_identifier "LAB_00160bce") (; ";")) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }" (while "while") (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" (( "(") (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(piVar23 + 2)" (* "*") (cast_expression "(int **)(piVar23 + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar23 + 2)" (( "(") (binary_expression "piVar23 + 2" (identifier "piVar23") (+ "+") (number_literal "2")) () ")"))))) (, ",") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\nLAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }\n  }" ({ "{") (labeled_statement "LAB_00160bc0:\n    if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" (statement_identifier "LAB_00160bc0") (: ":") (if_statement "if (iVar9 == *piVar23) {\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" (if "if") (parenthesized_expression "(iVar9 == *piVar23)" (( "(") (binary_expression "iVar9 == *piVar23" (identifier "iVar9") (== "==") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) () ")")) (compound_statement "{\n      if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }\n      break;\n    }" ({ "{") (if_statement "if (piVar23[1] != -1) {\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }" (if "if") (parenthesized_expression "(piVar23[1] != -1)" (( "(") (binary_expression "piVar23[1] != -1" (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        lVar15 = extraout_RDX[4];\n        if (lVar15 == 0) goto LAB_00161eb6;\n        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;\n        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);\n        puVar13 = extraout_RDX;\n        goto LAB_00160c17;\n      }" ({ "{") (expression_statement "lVar15 = extraout_RDX[4];" (assignment_expression "lVar15 = extraout_RDX[4]" (identifier "lVar15") (= "=") (subscript_expression "extraout_RDX[4]" (identifier "extraout_RDX") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_00161eb6;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161eb6;" (goto "goto") (statement_identifier "LAB_00161eb6") (; ";"))) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x20) & 2" (pointer_expression "*(byte *)(lVar15 + 0x20)" (* "*") (cast_expression "(byte *)(lVar15 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00161e9e;" (goto "goto") (statement_identifier "LAB_00161e9e") (; ";"))) (expression_statement "uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);" (assignment_expression "uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10)" (identifier "uVar28") (= "=") (binary_expression "piVar23[1] - *(int *)(lVar15 + 0x10)" (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*(int *)(lVar15 + 0x10)" (* "*") (cast_expression "(int *)(lVar15 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x10)" (( "(") (binary_expression "lVar15 + 0x10" (identifier "lVar15") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "puVar13 = extraout_RDX;" (assignment_expression "puVar13 = extraout_RDX" (identifier "puVar13") (= "=") (identifier "extraout_RDX")) (; ";")) (goto_statement "goto LAB_00160c17;" (goto "goto") (statement_identifier "LAB_00160c17") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00160bce;" (goto "goto") (statement_identifier "LAB_00160bce") (; ";")) (while_statement "while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }" (while "while") (parenthesized_expression "(piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0)" (( "(") (comma_expression "piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0" (assignment_expression "piVar23 = *(int **)(piVar23 + 2)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(piVar23 + 2)" (* "*") (cast_expression "(int **)(piVar23 + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar23 + 2)" (( "(") (binary_expression "piVar23 + 2" (identifier "piVar23") (+ "+") (number_literal "2")) () ")"))))) (, ",") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\nLAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }\n  }" ({ "{") (labeled_statement "LAB_00160fd0:\n    if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" (statement_identifier "LAB_00160fd0") (: ":") (if_statement "if (iVar9 == *piVar23) {\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" (if "if") (parenthesized_expression "(iVar9 == *piVar23)" (( "(") (binary_expression "iVar9 == *piVar23" (identifier "iVar9") (== "==") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) () ")")) (compound_statement "{\n      iVar9 = piVar23[1];\n      if (iVar9 != -1) goto LAB_00160d4e;\n      break;\n    }" ({ "{") (expression_statement "iVar9 = piVar23[1];" (assignment_expression "iVar9 = piVar23[1]" (identifier "iVar9") (= "=") (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar9 != -1) goto LAB_00160d4e;" (if "if") (parenthesized_expression "(iVar9 != -1)" (( "(") (binary_expression "iVar9 != -1" (identifier "iVar9") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00160d4e;" (goto "goto") (statement_identifier "LAB_00160d4e") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00160bce:\n                    \n  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");" (statement_identifier "LAB_00160bce") (: ":") (expression_statement "FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");" (call_expression "FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset")" (identifier "FUN_00199900") (argument_list "("../../gold/symtab.h",0x1b7,"got_offset")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0x1b7") (, ",") (string_literal ""got_offset"" (" """) (string_content "got_offset") (" """)) () ")"))) (; ";"))) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *
   gsym, uint r_type, bool is_32bit, Output_section * output_section) */

bool __thiscall
anon_unknown.dwarf_2330a8::Target_i386::type_1::function_1
          (type_1 *var_3,type_2<32> *gsym,type_3 r_type,bool is_32bit,
          type_4 *output_section)

{
  bool var_12;
  type_5 *var_4;
  type_6 var_11;
  bool var_6;
  type_7 in_register_00000009;
  type_6 var_10;
  type_6 var_9;
  type_6 var_17;
  type_3 var_2;
  int var_8;
  bool var_14;
  bool var_16;
  
  if ((*(type_6 *)(var_1(in_register_00000009,is_32bit) + 0x70) & 2) == 0) {
    return true;
  }
  var_2 = (int)gsym - 1;
  var_11 = 0;
  if (var_2 < 0x2b) {
    var_11 = *(type_6 *)&((type_8 *)(type_9)var_2)[0xebfa].options_;
  }
  if (var_3 == (type_1 *)0x0) {
    var_4 = gold::parameters->options_;
    if (var_4 == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_5((type_10 *)0x0);
    }
    if (((var_4->shared_).value == false) && ((var_4->pie_).value == false)) {
      return true;
    }
    return (bool)(~var_11 & 1 | (type_6)r_type);
  }
  var_6 = gold::parameters->doing_static_link_valid_;
  if (var_6 == false) {
                    /* WARNING: Subroutine does not return */
    gold::Parameters::var_7((type_8 *)var_3,(type_8 *)(type_9)var_2);
  }
  if (gold::parameters->doing_static_link_ == false) {
    var_10 = var_3[7].field_0x2 & 7;
    var_17 = 0;
    if ((var_3[7].field_0x2 & 7) == 0) {
      var_8 = *(int *)(var_3 + 3);
      var_9 = (type_6)var_3[7].field_0x3 >> 5 & 1;
      if ((var_8 == 0) && (var_9 != 0)) goto LAB_00160229;
LAB_00160320:
      if (var_8 != 0xfff1 || var_9 != 0) goto LAB_00160333;
LAB_001604b0:
      var_9 = 0;
      goto LAB_0016025b;
    }
    if (var_10 == 4) {
LAB_00160229:
      if (gold::parameters->options_ == (type_5 *)0x0) goto LAB_001605fc;
      if ((gold::parameters->options_->shared_).value == false) goto LAB_001604b0;
      if (var_10 == 0) {
        var_8 = *(int *)(var_3 + 3);
        var_9 = (type_6)var_3[7].field_0x3 >> 5 & 1;
        goto LAB_00160320;
      }
    }
    var_9 = var_17;
    if (var_10 == 3) goto LAB_0016025b;
LAB_00160333:
    if ((var_11 & 1) == 0) {
LAB_00160470:
      if (((var_11 & 8) != 0) && (var_3[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) {
        return var_6;
      }
      if ((var_11 & 0x10) == 0) {
        var_4 = gold::parameters->options_;
        if (var_4 == (type_5 *)0x0) goto LAB_001605fc;
        if ((((var_4->shared_).value == false) && ((var_4->pie_).value == false)) &&
           (var_3[4].local_dynamic_type_ != ~LOCAL_DYNAMIC_NONE)) goto LAB_001604b0;
      }
      if (var_10 == 0) {
        var_9 = *(type_6 *)((long)var_3[2] + 0x3c) & 1;
        if (((*(type_6 *)((long)var_3[2] + 0x3c) & 1) == 0) &&
           (var_9 = (type_6)var_3[7].field_0x3 >> 5 & *(int *)(var_3 + 3) == 0, var_9 == 0)) {
LAB_001604f0:
          var_9 = var_17;
          if (((var_3[7].field_0x1 & 3) == 0) && ((var_3[7].field_0x3 & 0x10) == 0)) {
            var_4 = gold::parameters->options_;
            if (var_4 == (type_5 *)0x0) goto LAB_001605fc;
            var_12 = (var_4->shared_).value;
            var_9 = var_12;
            if ((var_12 != false) &&
               ((var_9 = gold::Version_script_info::var_13
                                   (&(var_4->dynamic_list_).version_script_info_,(char *)*var_3,
                                    (type_11 *)0x0,&var_14), !(bool)var_9 || (var_14 != false))
               )) {
              var_4 = gold::parameters->options_;
              if (var_4 == (type_5 *)0x0) goto LAB_001605fc;
              if ((var_4->Bsymbolic_).value != false) goto LAB_001604b0;
              var_9 = var_12;
              if ((var_3[7].skip_call_tls_get_addr_ & 0xfU) != 1) {
                var_9 = (var_4->Bsymbolic_functions_).value ^ 1;
              }
            }
          }
        }
      }
      else {
        var_9 = var_6;
        if (var_10 != 4) goto LAB_001604f0;
      }
      goto LAB_0016025b;
    }
    var_4 = gold::parameters->options_;
    if (var_4 == (type_5 *)0x0) goto LAB_001605fc;
    var_9 = (var_4->shared_).value;
    if (((bool)var_9 == false) && (var_9 = (var_4->pie_).value, (bool)var_9 == false))
    goto LAB_00160470;
  }
  else {
    var_9 = 0;
LAB_0016025b:
    if ((var_11 & 1) == 0) goto LAB_00160264;
  }
  var_17 = var_6;
  if (((var_11 & 8) == 0) || (var_3[4].local_dynamic_type_ == ~LOCAL_DYNAMIC_NONE)) {
    if ((var_3[7].field_0x2 & 7) == 0) {
      if (((*(type_6 *)((long)var_3[2] + 0x3c) & 1) != 0) ||
         ((*(int *)(var_3 + 3) == 0 && ((var_3[7].field_0x3 & 0x20) != 0)))) goto LAB_00160264;
    }
    else if ((var_3[7].field_0x2 & 7) == 4) goto LAB_00160264;
    if (((var_3[7].field_0x1 & 3) == 0) &&
       (var_11 = (type_6)var_3[7].field_0x3 >> 4, var_17 = var_11 & 1, (var_11 & 1) == 0)) {
      var_4 = gold::parameters->options_;
      if (var_4 == (type_5 *)0x0) {
LAB_001605fc:
                    /* WARNING: Subroutine does not return */
        gold::var_15("../../gold/parameters.h",0x5c,"options");
      }
      var_17 = var_6;
      if ((var_4->shared_).value != false) {
        var_6 = gold::Version_script_info::var_13
                          (&(var_4->dynamic_list_).version_script_info_,(char *)*var_3,(type_11 *)0x0
                           ,&var_16);
        if ((var_6) && (var_16 == false)) {
LAB_00160264:
          return (bool)(var_9 ^ 1);
        }
        var_4 = gold::parameters->options_;
        if (var_4 == (type_5 *)0x0) goto LAB_001605fc;
        var_17 = (var_4->Bsymbolic_).value;
        if (((bool)var_17 == false) &&
           (var_17 = var_9 ^ 1, (var_3[7].skip_call_tls_get_addr_ & 0xfU) != 1)) {
          var_17 = var_17 | (var_4->Bsymbolic_functions_).value;
        }
      }
    }
  }
  return (bool)var_17;
}


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

undefined8 *
MASKED(undefined8 *param_1,int param_2,uint param_3,long param_4,long *param_5,ulong param_6)

{
  char cVar1;
  long *plVar2;
  uint *puVar3;
  long *plVar4;
  long lVar5;
  byte bVar6;
  char cVar7;
  int iVar8;
  int iVar9;
  undefined8 *puVar10;
  int *piVar11;
  undefined8 *puVar12;
  undefined8 *puVar13;
  undefined8 uVar14;
  long lVar15;
  byte bVar16;
  ulong uVar17;
  byte bVar18;
  uint uVar19;
  undefined4 uVar20;
  undefined8 *extraout_RDX;
  ulong uVar21;
  long lVar22;
  long unaff_RBX;
  int *piVar23;
  uint *unaff_RBP;
  ulong uVar24;
  long *plVar25;
  long *plVar26;
  ulong uVar27;
  uint uVar28;
  undefined8 *unaff_R12;
  uint uVar29;
  int iVar30;
  int iVar31;
  undefined6 uStack_30;
  char local_2a;
  char local_29;
  
  if ((*(byte *)(param_4 + 0x70) & 2) == 0) {
    return (undefined8 *)0x1;
  }
  uVar24 = (ulong)(param_2 - 1U);
  uVar28 = 0;
  if (param_2 - 1U < 0x2b) {
    uVar28 = (uint)(char)(&DAT_00339ec0)[uVar24];
  }
  if (param_1 == (undefined8 *)0x0) {
    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
    if (lVar15 != 0) {
      if ((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) {
        return (undefined8 *)0x1;
      }
      return (undefined8 *)(ulong)(~uVar28 & 1 | param_3);
    }
    FUN_0015d950();
    goto LAB_001605fc;
  }
  bVar6 = PTR_DAT_003f85c0[0x20];
  puVar12 = (undefined8 *)(ulong)bVar6;
  if (bVar6 == 0) {
    FUN_0015d840();
    lVar15 = CONCAT17(local_29,CONCAT16(local_2a,uStack_30));
    puVar12 = *(undefined8 **)(*(long *)(uVar24 + 8) + 0x2b0);
    plVar2 = *(long **)(uVar24 + 0x10);
    if ((char)*(byte *)(unaff_RBX + 0xb) < '\0') {
      iVar9 = *(int *)(unaff_RBX + 0x10);
    }
    else {
      if ((*(byte *)(unaff_RBX + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/object.h",0x6ab,"value");
      }
      puVar3 = *(uint **)(unaff_RBX + 0x10);
      uVar27 = (ulong)*puVar3;
      uVar21 = uVar27 % *(ulong *)(puVar3 + 4);
      plVar26 = *(long **)(*(long *)(puVar3 + 2) + uVar21 * 8);
      if (plVar26 != (long *)0x0) {
        uVar17 = ((long *)*plVar26)[1];
        plVar4 = (long *)*plVar26;
        while (plVar25 = plVar4, uVar27 != uVar17) {
          plVar4 = (long *)*plVar25;
          if ((plVar4 == (long *)0x0) ||
             (uVar17 = plVar4[1], plVar26 = plVar25, uVar21 != uVar17 % *(ulong *)(puVar3 + 4)))
          goto LAB_00160b90;
        }
        if (*plVar26 != 0) {
          iVar9 = *(int *)(*plVar26 + 0x10);
          goto LAB_0016070c;
        }
      }
LAB_00160b90:
      iVar9 = FUN_00225ee0(puVar3,plVar2,*(uint *)(unaff_RBX + 8) & 0x7ffffff,uVar27);
    }
LAB_0016070c:
    if (lVar15 == 0) {
      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_00161e86;
      bVar6 = *(byte *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) ^ 1;
    }
    else {
      bVar6 = FUN_0024abb0(lVar15);
    }
    iVar30 = (int)param_6;
    iVar8 = FUN_0015d860(bVar6,param_6 & 0xffffffff);
    puVar10 = (undefined8 *)(ulong)(iVar30 - 0xfU);
    if (0x19 < iVar30 - 0xfU) {
      return puVar10;
    }
    puVar13 = (undefined8 *)
              ((long)&switchD_00160746::switchdataD_00338da4 +
              (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);
    switch(puVar10) {
    case (undefined8 *)0x0:
    case (undefined8 *)0x1:
    case (undefined8 *)0x12:
      if (iVar8 != 2) {
        if (iVar8 != 0) {
LAB_00160e10:
          uVar14 = gettext("unsupported reloc %u");
          param_6 = param_6 & 0xffffffff;
          uVar20 = *(undefined4 *)*param_5;
LAB_00160c4c:
          puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14,param_6);
          return puVar12;
        }
        iVar9 = (iVar30 == 0x21) + 1;
        if (lVar15 != 0) {
          piVar23 = (int *)(lVar15 + 0x28);
          piVar11 = piVar23;
          do {
            if (*piVar11 == iVar9) {
              if (piVar11[1] != -1) goto LAB_00160fd0;
              break;
            }
            piVar11 = *(int **)(piVar11 + 2);
          } while (piVar11 != (int *)0x0);
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xcb8,"relocate_tls");
        }
        uVar28 = *(uint *)(*param_5 + 4) >> 8;
        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);
        if (cVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xcbe,"relocate_tls");
        }
        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);
LAB_00160d4e:
        if (iVar30 == 0xf) {
          lVar15 = extraout_RDX[6];
          if (lVar15 == 0) {
LAB_00161ee6:
            FUN_0015d780();
LAB_00161eeb:
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/i386.cc",0xc0b,"relocate_tls");
          }
          if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/output.h",0xc5,"address");
          }
          iVar9 = iVar9 + *(int *)(lVar15 + 8);
        }
LAB_00160a52:
        lVar15 = extraout_RDX[4];
        if (lVar15 != 0) {
          if ((*(byte *)(lVar15 + 0x20) & 2) != 0) {
            uVar28 = (iVar9 + *unaff_RBP) - *(int *)(lVar15 + 0x10);
            *unaff_RBP = uVar28;
            return (undefined8 *)(ulong)uVar28;
          }
LAB_00161e9e:
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/output.h",0xcf,"data_size");
        }
LAB_00161eb6:
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0x206,"got_size");
      }
      if (puVar12 == (undefined8 *)0x0) {
        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
          return *(undefined8 **)PTR_DAT_003f85c0;
        }
        puVar12 = (undefined8 *)FUN_00169320(lVar15);
        if ((char)puVar12 != '\0') {
          return puVar12;
        }
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0xca6,"relocate_tls");
      }
      piVar11 = (int *)*param_5;
      iVar8 = *piVar11;
      if (iVar30 == 0xf) {
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 1)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          iVar8 = *(int *)*param_5;
        }
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
        bVar6 = *(byte *)((long)unaff_RBP + -1);
        if (bVar6 == 0xa1) {
          *(undefined1 *)((long)unaff_RBP + -1) = 0xb8;
        }
        else {
          iVar8 = *(int *)*param_5;
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            iVar8 = *(int *)*param_5;
          }
          if (*(char *)((long)unaff_RBP + -2) == -0x75) {
            if ((bVar6 & 199) != 5) {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            }
            *(undefined1 *)((long)unaff_RBP + -2) = 199;
          }
          else {
            if (*(char *)((long)unaff_RBP + -2) != '\x03') {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
              goto LAB_00161683;
            }
            if ((bVar6 & 199) != 5) {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            }
            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;
          }
          *(byte *)((long)unaff_RBP + -1) = (byte)((int)(uint)bVar6 >> 3) & 7 | 0xc0;
        }
LAB_00161683:
        iVar8 = *(int *)(puVar12 + 0x59);
LAB_0016168e:
        uVar28 = iVar9 - iVar8;
      }
      else {
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          piVar11 = (int *)*param_5;
        }
        iVar8 = *piVar11;
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
        bVar6 = *(byte *)((long)unaff_RBP + -1);
        cVar7 = *(char *)((long)unaff_RBP + -2);
        if (((bVar6 & 0xc0) != 0x80) || ((bVar6 & 7) == 4)) {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        bVar6 = (byte)((int)(uint)bVar6 >> 3);
        if (cVar7 == -0x75) {
          *(undefined1 *)((long)unaff_RBP + -2) = 199;
LAB_00160edd:
          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xc0;
        }
        else if (cVar7 == '+') {
          *(undefined1 *)((long)unaff_RBP + -2) = 0x81;
          *(byte *)((long)unaff_RBP + -1) = bVar6 & 7 | 0xe8;
        }
        else {
          if (cVar7 == '\x03') {
            *(undefined1 *)((long)unaff_RBP + -2) = 0x81;
            goto LAB_00160edd;
          }
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        iVar8 = (int)puVar12[0x59];
        uVar28 = iVar8 - iVar9;
        if (iVar30 == 0x10) goto LAB_0016168e;
      }
      *unaff_RBP = *unaff_RBP + uVar28;
      puVar13 = (undefined8 *)(ulong)uVar28;
      break;
    case (undefined8 *)0x2:
      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);
      if (puVar13 == (undefined8 *)0x0) {
LAB_00161e86:
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/parameters.h",0x5c,"options");
      }
      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {
        if (puVar12 == (undefined8 *)0x0) {
          puVar13 = *(undefined8 **)PTR_DAT_003f85c0;
          if ((*(int *)(puVar13 + 6) < 1) &&
             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/i386.cc",0xcd7,"relocate_tls");
          }
        }
        else {
          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);
          puVar13 = puVar12;
        }
      }
      break;
    case (undefined8 *)0x3:
      if (iVar8 != 2) {
        iVar9 = (iVar8 != 3) + 1 + (uint)(iVar8 != 3);
        if (lVar15 != 0) {
          piVar23 = (int *)(lVar15 + 0x28);
          piVar11 = piVar23;
          do {
            if (*piVar11 == iVar9) {
              if (piVar11[1] != -1) goto LAB_00160bc0;
              break;
            }
            piVar11 = *(int **)(piVar11 + 2);
          } while (piVar11 != (int *)0x0);
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc05,"relocate_tls");
        }
        uVar28 = *(uint *)(*param_5 + 4) >> 8;
        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar9,0);
        if (cVar7 == '\0') goto LAB_00161eeb;
        iVar9 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar9,0);
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        uVar28 = iVar9 - *(int *)(lVar15 + 0x10);
        puVar13 = (undefined8 *)(ulong)uVar28;
LAB_00160c17:
        if (iVar8 != 3) {
          if (iVar8 != 0) {
            uVar14 = gettext("unsupported reloc %u");
            param_6 = 0x12;
            uVar20 = *(undefined4 *)*param_5;
            goto LAB_00160c4c;
          }
          goto LAB_00160c26;
        }
        iVar9 = *(int *)*param_5;
        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
          iVar9 = *(int *)*param_5;
        }
        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 9)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
          iVar9 = *(int *)*param_5;
        }
        cVar7 = (char)unaff_RBP[1];
        cVar1 = *(char *)((long)unaff_RBP + -2);
        bVar6 = *(byte *)((long)unaff_RBP + -1);
        if ((cVar1 == -0x73) || (cVar1 == '\x04')) {
          if (cVar7 != -0x18 && cVar7 != -1) goto LAB_0016198c;
LAB_00161589:
          if (cVar1 == '\x04') {
            if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 3)) {
              uVar14 = gettext("TLS relocation out of range");
              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
              iVar9 = *(int *)*param_5;
            }
            if (*(char *)((long)unaff_RBP + -3) != -0x73) {
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
            }
            if (((bVar6 & 199) == 5) && (bVar6 != 0x20)) {
              lVar15 = -3;
              lVar22 = 5;
            }
            else {
              uVar20 = *(undefined4 *)*param_5;
              uVar14 = gettext("TLS relocation against invalid instruction");
              FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
              lVar15 = -3;
              lVar22 = 5;
            }
            goto LAB_00161451;
          }
        }
        else {
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
          iVar9 = *(int *)*param_5;
          if (cVar7 != -0x18 && cVar7 != -1) {
LAB_0016198c:
            uVar14 = gettext("TLS relocation against invalid instruction");
            FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
            iVar9 = *(int *)*param_5;
            goto LAB_00161589;
          }
        }
        if (unaff_R12 < (undefined8 *)(ulong)(iVar9 + 10)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        }
        if ((((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) &&
           (((cVar7 == -0x18 && (*(char *)((long)unaff_RBP + 9) == -0x70)) ||
            ((bVar6 & 7) == (*(byte *)((long)unaff_RBP + 5) & 7))))) {
          lVar15 = -2;
          lVar22 = 6;
        }
        else {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          lVar15 = -2;
          lVar22 = 6;
        }
LAB_00161451:
        *(undefined8 *)(lVar15 + (long)unaff_RBP) = DAT_00338d7f;
        *(undefined4 *)((undefined8 *)(lVar15 + (long)unaff_RBP) + 1) = DAT_00338d87;
        *(int *)((long)unaff_RBP + lVar22) = *(int *)((long)unaff_RBP + lVar22) + uVar28;
        *(undefined1 *)param_1 = 1;
        return param_1;
      }
      if (puVar12 == (undefined8 *)0x0) {
        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
          return *(undefined8 **)PTR_DAT_003f85c0;
        }
        puVar12 = (undefined8 *)FUN_00169320(lVar15);
        if ((char)puVar12 != '\0') {
          return puVar12;
        }
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0xbf5,"relocate_tls");
      }
      iVar8 = *(int *)*param_5;
      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        iVar8 = *(int *)*param_5;
      }
      if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 9)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        iVar8 = *(int *)*param_5;
      }
      cVar7 = (char)unaff_RBP[1];
      cVar1 = *(char *)((long)unaff_RBP + -2);
      bVar6 = *(byte *)((long)unaff_RBP + -1);
      if ((cVar1 == -0x73) || (cVar1 == '\x04')) {
        if (cVar7 != -1 && cVar7 != -0x18) goto LAB_00161759;
LAB_001614c8:
        if (cVar1 != '\x04') goto LAB_001607f1;
        iVar8 = *(int *)*param_5;
        if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 3)) {
          uVar14 = gettext("TLS relocation out of range");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          iVar8 = *(int *)*param_5;
        }
        if (*(char *)((long)unaff_RBP + -3) != -0x73) {
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
        if (((bVar6 & 199) != 5) || (bVar6 == 0x20)) {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        lVar15 = 5;
        *(undefined8 *)((long)unaff_RBP + -3) = DAT_00338d68;
        *(undefined4 *)((long)unaff_RBP + 5) = DAT_00338d70;
      }
      else {
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        if (cVar7 != -1 && cVar7 != -0x18) {
          iVar8 = *(int *)*param_5;
LAB_00161759:
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          goto LAB_001614c8;
        }
LAB_001607f1:
        if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {
          if (cVar7 != -0x18) {
            if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) goto LAB_001607ff;
            goto LAB_00160829;
          }
LAB_00160833:
          if ((unaff_R12 <= (undefined8 *)(ulong)(*(int *)*param_5 + 9)) ||
             (*(char *)((long)unaff_RBP + 9) != -0x70)) {
            *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d74;
            *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d7c;
            *(undefined1 *)(unaff_RBP + 2) = DAT_00338d7e;
            lVar15 = 5;
            goto LAB_0016087d;
          }
        }
        else {
LAB_001607ff:
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
LAB_00160829:
          if (cVar7 != -1) goto LAB_00160833;
        }
        lVar15 = 6;
        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d68;
        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d70;
      }
LAB_0016087d:
      *(int *)((long)unaff_RBP + lVar15) =
           *(int *)((long)unaff_RBP + lVar15) + ((int)puVar12[0x59] - iVar9);
      *(undefined1 *)param_1 = 1;
      puVar13 = param_1;
      break;
    case (undefined8 *)0x4:
      if (*(int *)((long)param_1 + 4) == 1) {
        uVar14 = gettext("both SUN and GNU model TLS relocations");
        puVar12 = (undefined8 *)FUN_00191eb0(uVar24,param_4,*(undefined4 *)*param_5,uVar14);
        return puVar12;
      }
      *(undefined4 *)((long)param_1 + 4) = 2;
      if (iVar8 != 2) {
        if (iVar8 != 0) {
          uVar14 = gettext("unsupported reloc %u");
          param_6 = 0x13;
          uVar20 = *(undefined4 *)*param_5;
          goto LAB_00160c4c;
        }
        iVar9 = *(int *)(extraout_RDX + 0x12);
        if (iVar9 == -1) {
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0x65a,"got_mod_index_entry");
        }
        goto LAB_00160a52;
      }
      if (puVar12 == (undefined8 *)0x0) {
        if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
          return *(undefined8 **)PTR_DAT_003f85c0;
        }
        puVar12 = (undefined8 *)FUN_00169320(lVar15);
        if ((char)puVar12 != '\0') {
          return puVar12;
        }
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/i386.cc",0xc71,"relocate_tls");
      }
      piVar11 = (int *)*param_5;
      iVar9 = *piVar11;
      if (unaff_R12 < (undefined8 *)(ulong)(iVar9 - 2)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        piVar11 = (int *)*param_5;
      }
      cVar7 = (char)unaff_RBP[1];
      bVar6 = *(byte *)((long)unaff_RBP + -1);
      cVar1 = *(char *)((long)unaff_RBP + -2);
      iVar9 = *piVar11;
      if ((cVar7 == -0x18) || (cVar7 == -1)) {
        iVar8 = (cVar7 != -0x18) + 9;
      }
      else {
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        iVar9 = *(int *)*param_5;
        iVar8 = 10;
      }
      if (unaff_R12 < (undefined8 *)(ulong)(uint)(iVar8 + iVar9)) {
        uVar14 = gettext("TLS relocation out of range");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
        iVar9 = *(int *)*param_5;
      }
      if (cVar1 != -0x73) {
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,iVar9,uVar14);
      }
      if (((bVar6 & 0xf8) == 0x80) && ((bVar6 & 3) != 0)) {
        if (cVar7 != -0x18) {
          if ((bVar6 & 7) != (*(byte *)((long)unaff_RBP + 5) & 7)) {
            uVar20 = *(undefined4 *)*param_5;
            uVar14 = gettext("TLS relocation against invalid instruction");
            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          }
          goto LAB_001610d7;
        }
LAB_00161808:
        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d8b;
        *(undefined2 *)((long)unaff_RBP + 6) = DAT_00338d93;
        *(undefined1 *)(unaff_RBP + 2) = DAT_00338d95;
      }
      else {
        uVar20 = *(undefined4 *)*param_5;
        uVar14 = gettext("TLS relocation against invalid instruction");
        FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        if (cVar7 == -0x18) goto LAB_00161808;
LAB_001610d7:
        *(undefined8 *)((long)unaff_RBP + -2) = DAT_00338d97;
        *(undefined4 *)((long)unaff_RBP + 6) = DAT_00338d9f;
      }
      *(undefined1 *)param_1 = 1;
      puVar13 = param_1;
      break;
    case (undefined8 *)0x11:
      puVar10 = (undefined8 *)
                ((long)&switchD_00160746::switchdataD_00338da4 +
                (long)(int)(&switchD_00160746::switchdataD_00338da4)[(long)puVar10]);
      if ((iVar8 == 2) &&
         (puVar10 = *(undefined8 **)(uVar24 + 0x38),
         (*(byte *)(*(undefined8 **)(uVar24 + 0x38) + 1) & 4) != 0)) {
        if (puVar12 == (undefined8 *)0x0) {
          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
            return *(undefined8 **)PTR_DAT_003f85c0;
          }
          puVar12 = (undefined8 *)FUN_00169320(lVar15);
          if ((char)puVar12 != '\0') {
            return puVar12;
          }
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc95,"relocate_tls");
        }
        iVar9 = iVar9 - *(int *)(puVar12 + 0x59);
        puVar10 = puVar12;
      }
      *unaff_RBP = *unaff_RBP + iVar9;
      return puVar10;
    case (undefined8 *)0x13:
      puVar13 = *(undefined8 **)(PTR_DAT_003f85c0 + 0x10);
      if (puVar13 == (undefined8 *)0x0) goto LAB_00161e86;
      if (*(char *)((long)puVar13 + 0x2a61) == '\0') {
        if (puVar12 == (undefined8 *)0x0) {
          puVar13 = (undefined8 *)(ulong)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30);
          if (((int)*(uint *)(*(long *)PTR_DAT_003f85c0 + 0x30) < 1) &&
             (puVar13 = (undefined8 *)FUN_00169320(lVar15), (char)puVar13 == '\0')) {
                    /* WARNING: Subroutine does not return */
            FUN_00199900("../../gold/i386.cc",0xce7,"relocate_tls");
          }
        }
        else {
          uVar28 = (*unaff_RBP + *(int *)(puVar12 + 0x59)) - iVar9;
          *unaff_RBP = uVar28;
          puVar13 = (undefined8 *)(ulong)uVar28;
        }
      }
      break;
    case (undefined8 *)0x18:
    case (undefined8 *)0x19:
      *(undefined4 *)((long)param_1 + 4) = 2;
      if (iVar8 == 2) {
        if (puVar12 == (undefined8 *)0x0) {
          if (0 < *(int *)(*(undefined8 **)PTR_DAT_003f85c0 + 6)) {
            return *(undefined8 **)PTR_DAT_003f85c0;
          }
          puVar12 = (undefined8 *)FUN_00169320(lVar15);
          if ((char)puVar12 != '\0') {
            return puVar12;
          }
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc2a,"relocate_tls");
        }
        iVar8 = *(int *)*param_5;
        if (iVar30 == 0x27) {
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            iVar8 = *(int *)*param_5;
          }
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 + 4)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          }
          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||
             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {
            uVar20 = *(undefined4 *)*param_5;
            uVar14 = gettext("TLS relocation against invalid instruction");
            FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          }
          *(undefined1 *)((long)unaff_RBP + -1) = 5;
          *unaff_RBP = (iVar9 + *unaff_RBP) - *(int *)(puVar12 + 0x59);
          return puVar12;
        }
        puVar13 = (undefined8 *)(ulong)(iVar8 + 2);
        if (unaff_R12 < puVar13) {
          uVar14 = gettext("TLS relocation out of range");
LAB_00161333:
          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
        }
LAB_00160f46:
        if (((char)*unaff_RBP != -1) || (*(char *)((long)unaff_RBP + 1) != '\x10')) {
          uVar20 = *(undefined4 *)*param_5;
          uVar14 = gettext("TLS relocation against invalid instruction");
          puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
        }
        *(undefined2 *)unaff_RBP = 0x9066;
      }
      else {
        if (iVar8 == 3) {
          iVar31 = 1;
          iVar9 = 0;
        }
        else if ((iVar30 == 0x27) && (iVar8 == 0)) {
          lVar22 = extraout_RDX[4];
          if (lVar22 == 0) goto LAB_00161eb6;
          if ((*(byte *)(lVar22 + 0x20) & 2) == 0) goto LAB_00161e9e;
          lVar5 = extraout_RDX[6];
          if (lVar5 == 0) goto LAB_00161ee6;
          if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_00161e9e;
          iVar9 = (int)*(undefined8 *)(lVar22 + 0x10) + *(int *)(lVar5 + 0x10);
          iVar31 = 4;
        }
        else {
          iVar31 = 4;
          iVar9 = 0;
        }
        if (lVar15 != 0) {
          piVar23 = (int *)(lVar15 + 0x28);
          piVar11 = piVar23;
          do {
            if (*piVar11 == iVar31) {
              if (piVar11[1] != -1) goto LAB_00160da0;
              break;
            }
            piVar11 = *(int **)(piVar11 + 2);
          } while (piVar11 != (int *)0x0);
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc43,"relocate_tls");
        }
        uVar28 = *(uint *)(*param_5 + 4) >> 8;
        cVar7 = (**(code **)(*plVar2 + 0x158))(plVar2,uVar28,iVar31,0);
        if (cVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/i386.cc",0xc49,"relocate_tls");
        }
        uVar28 = (**(code **)(*plVar2 + 0x160))(plVar2,uVar28,iVar31,0);
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        puVar13 = (undefined8 *)((ulong)uVar28 - *(long *)(lVar15 + 0x10));
        iVar31 = (int)puVar13;
LAB_00160de8:
        uVar28 = iVar9 + iVar31;
        if (iVar8 == 3) {
          iVar8 = *(int *)*param_5;
          if (iVar30 != 0x27) {
            puVar13 = (undefined8 *)(ulong)(iVar8 + 2);
            if (unaff_R12 < puVar13) {
              uVar14 = gettext("TLS relocation out of range");
              goto LAB_00161333;
            }
            goto LAB_00160f46;
          }
          if (unaff_R12 < (undefined8 *)(ulong)(iVar8 - 2)) {
            uVar14 = gettext("TLS relocation out of range");
            FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
            iVar8 = *(int *)*param_5;
          }
          puVar13 = (undefined8 *)(ulong)(iVar8 + 4);
          if (unaff_R12 < puVar13) {
            uVar14 = gettext("TLS relocation out of range");
            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,iVar8,uVar14);
          }
          if ((*(char *)((long)unaff_RBP + -2) != -0x73) ||
             (*(char *)((long)unaff_RBP + -1) != -0x7d)) {
            uVar20 = *(undefined4 *)*param_5;
            uVar14 = gettext("TLS relocation against invalid instruction");
            puVar13 = (undefined8 *)FUN_00191eb0(uVar24,param_4,uVar20,uVar14);
          }
          *(undefined1 *)((long)unaff_RBP + -2) = 0x8b;
        }
        else {
          if (iVar8 != 0) goto LAB_00160e10;
          if (iVar30 != 0x27) {
            return puVar13;
          }
        }
LAB_00160c26:
        *unaff_RBP = *unaff_RBP + uVar28;
      }
    }
    return puVar13;
  }
  uVar29 = (uint)(byte)PTR_DAT_003f85c0[0x21];
  if (PTR_DAT_003f85c0[0x21] == 0) {
    bVar18 = *(byte *)((long)param_1 + 0x3a) & 7;
    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {
      iVar9 = *(int *)(param_1 + 3);
      bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;
      if ((iVar9 == 0) && (bVar16 != 0)) goto LAB_00160229;
LAB_00160320:
      if (iVar9 != 0xfff1 || bVar16 != 0) goto LAB_00160333;
LAB_001604b0:
      uVar19 = 0;
      goto LAB_0016025b;
    }
    if (bVar18 == 4) {
LAB_00160229:
      if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) goto LAB_001605fc;
      if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x2a61) == '\0') goto LAB_001604b0;
      if (bVar18 == 0) {
        iVar9 = *(int *)(param_1 + 3);
        bVar16 = *(byte *)((long)param_1 + 0x3b) >> 5 & 1;
        goto LAB_00160320;
      }
    }
    uVar19 = uVar29;
    if (bVar18 == 3) goto LAB_0016025b;
LAB_00160333:
    if ((uVar28 & 1) == 0) {
LAB_00160470:
      if (((uVar28 & 8) != 0) && (*(int *)((long)param_1 + 0x24) != -1)) {
        return puVar12;
      }
      if ((uVar28 & 0x10) == 0) {
        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
        if (lVar15 == 0) goto LAB_001605fc;
        if (((*(char *)(lVar15 + 0x2a61) == '\0') && (*(char *)(lVar15 + 0x42d1) == '\0')) &&
           (*(int *)((long)param_1 + 0x24) != -1)) goto LAB_001604b0;
      }
      if (bVar18 == 0) {
        uVar19 = *(byte *)(param_1[2] + 0x3c) & 1;
        if (((*(byte *)(param_1[2] + 0x3c) & 1) == 0) &&
           (bVar6 = *(byte *)((long)param_1 + 0x3b) >> 5 & *(int *)(param_1 + 3) == 0,
           uVar19 = (uint)bVar6, bVar6 == 0)) {
LAB_001604f0:
          uVar19 = uVar29;
          if (((*(byte *)((long)param_1 + 0x39) & 3) == 0) &&
             ((*(byte *)((long)param_1 + 0x3b) & 0x10) == 0)) {
            lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
            if (lVar15 == 0) goto LAB_001605fc;
            bVar6 = *(byte *)(lVar15 + 0x2a61);
            uVar19 = (uint)bVar6;
            if ((bVar6 != 0) &&
               ((uVar19 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_2a), (char)uVar19 == '\0'
                || (local_2a != '\0')))) {
              lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
              if (lVar15 == 0) goto LAB_001605fc;
              if (*(char *)(lVar15 + 0xd21) != '\0') goto LAB_001604b0;
              uVar19 = (uint)bVar6;
              if ((*(byte *)(param_1 + 7) & 0xf) != 1) {
                uVar19 = *(byte *)(lVar15 + 0xde9) ^ 1;
              }
            }
          }
        }
      }
      else {
        if (bVar18 != 4) goto LAB_001604f0;
        uVar19 = (uint)bVar6;
      }
      goto LAB_0016025b;
    }
    lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
    if (lVar15 == 0) goto LAB_001605fc;
    if (*(byte *)(lVar15 + 0x2a61) == 0) {
      if (*(byte *)(lVar15 + 0x42d1) == 0) goto LAB_00160470;
      uVar19 = (uint)*(byte *)(lVar15 + 0x42d1);
    }
    else {
      uVar19 = (uint)*(byte *)(lVar15 + 0x2a61);
    }
  }
  else {
    uVar19 = 0;
LAB_0016025b:
    if ((uVar28 & 1) == 0) goto LAB_00160264;
  }
  if (((uVar28 & 8) == 0) || (*(int *)((long)param_1 + 0x24) == -1)) {
    if ((*(byte *)((long)param_1 + 0x3a) & 7) == 0) {
      if (((*(byte *)(param_1[2] + 0x3c) & 1) != 0) ||
         ((*(int *)(param_1 + 3) == 0 && ((*(byte *)((long)param_1 + 0x3b) & 0x20) != 0))))
      goto LAB_00160264;
    }
    else if ((*(byte *)((long)param_1 + 0x3a) & 7) == 4) goto LAB_00160264;
    if ((*(byte *)((long)param_1 + 0x39) & 3) == 0) {
      bVar6 = *(byte *)((long)param_1 + 0x3b) >> 4;
      if ((bVar6 & 1) == 0) {
        lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
        if (lVar15 == 0) {
LAB_001605fc:
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/parameters.h",0x5c,"options");
        }
        if (*(char *)(lVar15 + 0x2a61) != '\0') {
          cVar7 = FUN_00241de0(lVar15 + 0x9120,*param_1,0,&local_29);
          if ((cVar7 != '\0') && (local_29 == '\0')) {
LAB_00160264:
            return (undefined8 *)(ulong)(uVar19 ^ 1);
          }
          lVar15 = *(long *)(PTR_DAT_003f85c0 + 0x10);
          if (lVar15 == 0) goto LAB_001605fc;
          puVar12 = (undefined8 *)(ulong)*(byte *)(lVar15 + 0xd21);
          if (*(byte *)(lVar15 + 0xd21) == 0) {
            puVar12 = (undefined8 *)(ulong)(uVar19 ^ 1);
            if ((*(byte *)(param_1 + 7) & 0xf) != 1) {
              puVar12 = (undefined8 *)
                        (ulong)CONCAT31((int3)(uVar19 >> 8),
                                        (byte)(uVar19 ^ 1) | *(byte *)(lVar15 + 0xde9));
            }
          }
        }
      }
      else {
        puVar12 = (undefined8 *)(ulong)(bVar6 & 1);
      }
    }
  }
  return puVar12;
  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {
LAB_00160da0:
    if (*piVar23 == iVar31) {
      if (piVar23[1] != 0xffffffff) {
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        puVar13 = (undefined8 *)((ulong)(uint)piVar23[1] - *(long *)(lVar15 + 0x10));
        iVar31 = (int)puVar13;
        goto LAB_00160de8;
      }
      break;
    }
  }
  goto LAB_00160bce;
  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {
LAB_00160bc0:
    if (iVar9 == *piVar23) {
      if (piVar23[1] != -1) {
        lVar15 = extraout_RDX[4];
        if (lVar15 == 0) goto LAB_00161eb6;
        if ((*(byte *)(lVar15 + 0x20) & 2) == 0) goto LAB_00161e9e;
        uVar28 = piVar23[1] - *(int *)(lVar15 + 0x10);
        puVar13 = extraout_RDX;
        goto LAB_00160c17;
      }
      break;
    }
  }
  goto LAB_00160bce;
  while (piVar23 = *(int **)(piVar23 + 2), piVar23 != (int *)0x0) {
LAB_00160fd0:
    if (iVar9 == *piVar23) {
      iVar9 = piVar23[1];
      if (iVar9 != -1) goto LAB_00160d4e;
      break;
    }
  }
LAB_00160bce:
                    /* WARNING: Subroutine does not return */
  FUN_00199900("../../gold/symtab.h",0x1b7,"got_offset");
}

