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

symbolS * colon(char *sym_name)

{
  undefined1 *puVar1;
  asymbol *paVar2;
  fragS *pfVar3;
  byte bVar4;
  symbolS *symbolP;
  char *pcVar5;
  bfd_boolean bVar6;
  char *format;
  symbolS *psVar7;
  int iVar8;
  segT paVar9;
  segT paVar10;
  undefined *puVar11;
  valueT vVar12;
  addressT aVar13;
  addressT aVar14;
  byte local_24;
  
  symbolP = symbol_find_noref(sym_name,0);
  paVar9 = reg_section;
  if (symbolP == (symbolS *)0x0) {
    if ((flag_keep_locals == 0) &&
       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,
       bVar6 != 0)) {
      aVar13 = frag_now_fix();
      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);
    }
    else {
      pfVar3 = frag_now;
      aVar13 = frag_now_fix();
      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);
      symbol_table_insert(symbolP);
    }
    goto LAB_0004031a;
  }
  paVar10 = (segT)symbolP->bsym;
  if (((uint)symbolP->sy_flags & 1) == 0) {
    puVar1 = &(symbolP->sy_flags).field_0x1;
    *puVar1 = *puVar1 & 0xfd;
LAB_00040244:
    if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&
       ((symbolP->sy_value).field_0x10 != '\x03')) {
      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;
LAB_00040461:
      puVar11 = PTR__bfd_std_section_00077fa0;
      if (bVar4 == 0) goto LAB_00040469;
    }
    else {
      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;
      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;
joined_r0x00040270:
      if (bVar4 == 0) {
LAB_000403bb:
        if (symbolP->sy_frag == frag_now) {
          vVar12 = S_GET_VALUE(symbolP);
          aVar13 = frag_now_fix();
          if (vVar12 == aVar13) {
            paVar9 = (segT)symbolP->bsym;
            if (((uint)symbolP->sy_flags & 1) == 0) {
LAB_0004078e:
              paVar9 = (segT)paVar9->flags;
            }
            else if (reg_section == paVar9) {
              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;
              goto LAB_0004078e;
            }
            if (now_seg == paVar9) goto LAB_0004031a;
          }
        }
        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");
        as_bad(pcVar5,sym_name);
        symbolP = symbol_clone(symbolP,0);
        define_sym_at_dot(symbolP);
        goto LAB_0004031a;
      }
    }
    puVar11 = PTR__bfd_std_section_00077fa0;
    symbolP = symbol_clone(symbolP,1);
    S_SET_VALUE(symbolP,0);
    psVar7 = symbolP;
    if (((uint)symbolP->sy_flags & 1) != 0) {
      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;
      psVar7 = (symbolP->sy_value).X_op_symbol;
    }
    *(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf;
  }
  else {
    if (reg_section != paVar10) {
      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&
         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||
          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))
      {
        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);
        as_bad(pcVar5,sym_name);
        return symbolP;
      }
      paVar9 = now_seg;
      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;
      symbolP->bsym = (asymbol *)paVar9;
      aVar13 = frag_now_fix();
      (symbolP->sy_value).X_add_number = aVar13;
      goto LAB_0004031a;
    }
    symbolP = (symbolP->sy_value).X_op_symbol;
    puVar1 = &(symbolP->sy_flags).field_0x1;
    *puVar1 = *puVar1 & 0xfd;
    paVar10 = (segT)symbolP->bsym;
    if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;
    if (paVar9 == paVar10) {
      psVar7 = (symbolP->sy_value).X_op_symbol;
      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {
        if ((psVar7->sy_value).field_0x10 == '\x03') {
          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];
          goto joined_r0x00040652;
        }
      }
      else {
        if (reg_section != paVar9) goto LAB_000403bb;
        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);
joined_r0x00040652:
        if ((bVar4 & 0x10) == 0) {
          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;
          goto joined_r0x00040270;
        }
      }
      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;
      goto LAB_00040461;
    }
    puVar11 = PTR__bfd_std_section_00077fa0;
    if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;
  }
LAB_00040469:
  vVar12 = S_GET_VALUE(symbolP);
  if (vVar12 == 0) {
LAB_00040540:
    define_sym_at_dot(symbolP);
    goto LAB_0004031a;
  }
  paVar9 = (segT)symbolP->bsym;
  local_24 = (byte)((uint)symbolP->sy_flags & 1);
  if (((uint)symbolP->sy_flags & 1) == 0) {
    paVar10 = (segT)paVar9->flags;
    if (((uint)paVar9->prev & 4) != 0) goto LAB_000404a9;
    if (paVar10 == (segT)(puVar11 + 0xc0)) {
      iVar8 = S_IS_EXTERNAL(symbolP);
    }
    else {
      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;
      iVar8 = S_IS_EXTERNAL(symbolP);
    }
    if (iVar8 == 0) goto LAB_000404a9;
LAB_000405ac:
    if (now_seg == data_section) goto LAB_00040540;
    if (now_seg != bss_section) {
      if ((uint)local_24 == 0) {
LAB_000405df:
        paVar9 = (segT)paVar9->flags;
      }
      else if (paVar9 == reg_section) {
        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;
        goto LAB_000405df;
      }
      if (now_seg != paVar9) goto LAB_000404b7;
    }
    vVar12 = S_GET_VALUE(symbolP);
    aVar13 = frag_now_fix();
    if ((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)) {
      aVar13 = frag_now_fix();
      S_SET_VALUE(symbolP,aVar13);
    }
    goto LAB_0004031a;
  }
  if (paVar9 == reg_section) {
    paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym;
    paVar10 = paVar2->section;
    if (((paVar2->flags & 4) == 0) &&
       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))) goto LAB_000406af;
  }
  else {
    paVar10 = paVar9;
    if (paVar9 == (segT)(puVar11 + 0xc0)) {
LAB_000406af:
      iVar8 = S_IS_EXTERNAL(symbolP);
      if (iVar8 != 0) goto LAB_000405ac;
      paVar10 = paVar9;
      if (paVar9 == reg_section) {
        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;
      }
    }
  }
LAB_000404a9:
  if (bss_section == paVar10) goto LAB_000405ac;
LAB_000404b7:
  vVar12 = S_GET_VALUE(symbolP);
  psVar7 = symbolP;
  if (((uint)symbolP->sy_flags & 1) == 0) {
LAB_00040632:
    paVar9 = psVar7->bsym->section;
  }
  else {
    paVar9 = (segT)symbolP->bsym;
    if (paVar9 == reg_section) {
      psVar7 = (symbolP->sy_value).X_op_symbol;
      goto LAB_00040632;
    }
  }
  pcVar5 = paVar9->name;
  format = (char *)dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld");
  as_bad(format,sym_name,pcVar5,&DAT_00057aaa,(int)vVar12);
LAB_0004031a:
  if (mri_common_symbol != (symbolS *)0x0) {
    if (((uint)symbolP->sy_flags & 1) != 0) {
      if ((segT)symbolP->bsym == reg_section) {
        symbolP = (symbolP->sy_value).X_op_symbol;
      }
      else {
        symbolP = local_symbol_convert((local_symbol *)symbolP);
      }
    }
    psVar7 = mri_common_symbol;
    (symbolP->sy_value).field_0x10 = 3;
    (symbolP->sy_value).X_add_symbol = psVar7;
    vVar12 = S_GET_VALUE(psVar7);
    (symbolP->sy_value).X_add_number = vVar12;
    symbolP->sy_frag = &zero_address_frag;
    S_SET_SEGMENT(symbolP,expr_section);
    puVar1 = &(symbolP->sy_flags).field_0x1;
    *puVar1 = *puVar1 | 1;
  }
  alpha_define_label(symbolP);
  return symbolP;
}



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

byte * FUN_000401a0(undefined4 param_1)

{
  undefined4 uVar1;
  byte bVar2;
  byte *pbVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 uVar6;
  uint uVar7;
  byte *pbVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  undefined *puVar12;
  longlong lVar13;
  undefined8 uVar14;
  longlong lVar15;
  byte local_24;
  
  pbVar3 = (byte *)FUN_00040020(param_1,0);
  puVar10 = DAT_00081410;
  if (pbVar3 == (byte *)0x0) {
    if ((DAT_00081428 == 0) &&
       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),
       iVar9 = DAT_000814a4, iVar5 != 0)) {
      uVar14 = FUN_0002a520();
      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);
    }
    else {
      iVar9 = DAT_000814a4;
      uVar14 = FUN_0002a520();
      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);
      FUN_0003cac0(pbVar3);
    }
    goto LAB_0004031a;
  }
  puVar11 = *(undefined4 **)(pbVar3 + 4);
  if ((*pbVar3 & 1) == 0) {
    pbVar3[1] = pbVar3[1] & 0xfd;
LAB_00040244:
    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {
      bVar2 = *pbVar3 >> 6 & 1;
LAB_00040461:
      puVar12 = PTR__bfd_std_section_00077fa0;
      if (bVar2 == 0) goto LAB_00040469;
    }
    else {
      bVar2 = *pbVar3 >> 6 & 1;
      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;
joined_r0x00040270:
      if (bVar2 == 0) {
LAB_000403bb:
        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {
          lVar13 = FUN_0003f930();
          lVar15 = FUN_0002a520();
          if (lVar13 == lVar15) {
            puVar10 = *(undefined4 **)(pbVar3 + 4);
            if ((*pbVar3 & 1) == 0) {
LAB_0004078e:
              puVar10 = (undefined4 *)puVar10[5];
            }
            else if (DAT_00081410 == puVar10) {
              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);
              goto LAB_0004078e;
            }
            if (DAT_0008137c == puVar10) goto LAB_0004031a;
          }
        }
        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);
        FUN_00031620(uVar4,param_1);
        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);
        FUN_0003e6c0();
        goto LAB_0004031a;
      }
    }
    puVar12 = PTR__bfd_std_section_00077fa0;
    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);
    FUN_0003db40(pbVar3,0,0);
    pbVar8 = pbVar3;
    if ((*pbVar3 & 1) != 0) {
      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;
      pbVar8 = *(byte **)(pbVar3 + 0xc);
    }
    *pbVar8 = *pbVar8 & 0xbf;
  }
  else {
    if (DAT_00081410 != puVar11) {
      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&
         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||
          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {
        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);
        FUN_00031620(uVar4,param_1);
        return pbVar3;
      }
      puVar10 = DAT_0008137c;
      *(int *)(pbVar3 + 0xc) = DAT_000814a4;
      *(undefined4 **)(pbVar3 + 4) = puVar10;
      uVar14 = FUN_0002a520();
      *(undefined8 *)(pbVar3 + 0x10) = uVar14;
      goto LAB_0004031a;
    }
    pbVar3 = *(byte **)(pbVar3 + 0xc);
    pbVar3[1] = pbVar3[1] & 0xfd;
    puVar11 = *(undefined4 **)(pbVar3 + 4);
    if ((*pbVar3 & 1) == 0) goto LAB_00040244;
    if (puVar10 == puVar11) {
      pbVar8 = *(byte **)(pbVar3 + 0xc);
      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {
        if (pbVar8[0x18] == 3) {
          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];
          goto joined_r0x00040652;
        }
      }
      else {
        if (DAT_00081410 != puVar10) goto LAB_000403bb;
        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);
joined_r0x00040652:
        if ((bVar2 & 0x10) == 0) {
          bVar2 = *pbVar8 & 0x40;
          goto joined_r0x00040270;
        }
      }
      bVar2 = *pbVar8 >> 6 & 1;
      goto LAB_00040461;
    }
    puVar12 = PTR__bfd_std_section_00077fa0;
    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;
  }
LAB_00040469:
  lVar13 = FUN_0003f930();
  if (lVar13 == 0) {
LAB_00040540:
    FUN_0003e6c0();
    goto LAB_0004031a;
  }
  puVar10 = *(undefined4 **)(pbVar3 + 4);
  local_24 = *pbVar3 & 1;
  if ((*pbVar3 & 1) == 0) {
    puVar11 = (undefined4 *)puVar10[5];
    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;
    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {
      iVar9 = FUN_0003dc20(pbVar3);
    }
    else {
      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;
      iVar9 = FUN_0003dc20(pbVar3);
    }
    if (iVar9 == 0) goto LAB_000404a9;
LAB_000405ac:
    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;
    if (DAT_0008137c != DAT_0008136c) {
      if (local_24 == 0) {
LAB_000405df:
        puVar10 = (undefined4 *)puVar10[5];
      }
      else if (puVar10 == DAT_00081410) {
        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);
        goto LAB_000405df;
      }
      if (DAT_0008137c != puVar10) goto LAB_000404b7;
    }
    uVar14 = FUN_0003f930();
    uVar7 = FUN_0002a520();
    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {
      uVar14 = FUN_0002a520();
      FUN_0003db40(pbVar3,uVar14);
    }
    goto LAB_0004031a;
  }
  if (puVar10 == DAT_00081410) {
    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);
    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&
       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)
        ))) goto LAB_000406af;
  }
  else {
    puVar11 = puVar10;
    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {
LAB_000406af:
      iVar9 = FUN_0003dc20(pbVar3);
      if (iVar9 != 0) goto LAB_000405ac;
      puVar11 = puVar10;
      if (puVar10 == DAT_00081410) {
        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);
      }
    }
  }
LAB_000404a9:
  if (DAT_0008136c == puVar11) goto LAB_000405ac;
LAB_000404b7:
  uVar4 = FUN_0003f930();
  pbVar8 = pbVar3;
  if ((*pbVar3 & 1) == 0) {
LAB_00040632:
    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);
  }
  else {
    puVar10 = *(undefined4 **)(pbVar3 + 4);
    if (puVar10 == DAT_00081410) {
      pbVar8 = *(byte **)(pbVar3 + 0xc);
      goto LAB_00040632;
    }
  }
  uVar1 = *puVar10;
  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);
  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);
LAB_0004031a:
  if (DAT_00081560 != 0) {
    if ((*pbVar3 & 1) != 0) {
      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {
        pbVar3 = *(byte **)(pbVar3 + 0xc);
      }
      else {
        pbVar3 = (byte *)FUN_0003e490();
      }
    }
    iVar9 = DAT_00081560;
    pbVar3[0x18] = 3;
    *(int *)(pbVar3 + 8) = iVar9;
    uVar14 = FUN_0003f930();
    *(undefined8 *)(pbVar3 + 0x10) = uVar14;
    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;
    FUN_0003e210(pbVar3,DAT_00081360);
    pbVar3[1] = pbVar3[1] | 1;
  }
  FUN_0004e050(pbVar3);
  return pbVar3;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016070
ADD EBX,0x37e57
SUB ESP,0x24
PUSH 0x0
PUSH dword ptr [ESP + 0x3c]
CALL 0x00040020
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000402b8
MOV ESI,EAX
MOV ECX,dword ptr [EAX + 0x4]
TEST byte ptr [EAX],0x1
JZ 0x00040240
LEA EDX,[EBX + 0x9410]
MOV EAX,dword ptr [EDX]
CMP EAX,ECX
JZ 0x00040390
MOV EDX,dword ptr [EBX + 0xffffffa0]
LEA EDI,[EBX + 0x94a4]
ADD EDX,0xc0
MOV EAX,dword ptr [EDI]
CMP ECX,EDX
JZ 0x00040730
CMP dword ptr [ESI + 0xc],EAX
JNZ 0x00040212
LEA EBP,[EBX + 0x937c]
CMP dword ptr [EBP],ECX
JZ 0x00040750
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf384]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00031620
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
AND byte ptr [EAX + 0x1],0xfd
MOV EDI,dword ptr [EBX + 0xffffffa0]
MOV EDX,dword ptr [ECX + 0x14]
LEA EAX,[EDI + 0xc0]
CMP EDX,EAX
JZ 0x00040408
MOVZX EAX,byte ptr [ESI]
SHR AL,0x6
AND EAX,0x1
TEST byte ptr [EDX + 0x15],0x10
JNZ 0x00040461
TEST AL,AL
JZ 0x000403bb
SUB ESP,0x8
PUSH 0x1
PUSH ESI
CALL 0x0003fbf0
ADD ESP,0xc
PUSH 0x0
MOV ESI,EAX
PUSH 0x0
PUSH EAX
CALL 0x0003db40
ADD ESP,0x10
TEST byte ptr [ESI],0x1
JZ 0x00040678
LEA EAX,[EBX + 0x9410]
MOV EAX,dword ptr [EAX]
CMP dword ptr [ESI + 0x4],EAX
JNZ 0x00040469
MOV EAX,dword ptr [ESI + 0xc]
JMP 0x0004067a
LEA EAX,[EBX + 0x9428]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x000402e8
LEA EAX,[EBX + 0x9544]
SUB ESP,0x8
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL dword ptr [EDX + 0x11c]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00040510
LEA EAX,[EBX + 0x94a4]
MOV ESI,dword ptr [EAX]
CALL 0x0002a520
SUB ESP,0xc
PUSH ESI
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0x937c]
PUSH dword ptr [EAX]
PUSH dword ptr [ESP + 0x4c]
CALL 0x0003e420
ADD ESP,0x14
PUSH EAX
MOV ESI,EAX
CALL 0x0003cac0
ADD ESP,0x10
LEA EDI,[EBX + 0x9560]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0004037a
TEST byte ptr [ESI],0x1
JZ 0x00040347
LEA EDX,[EBX + 0x9410]
MOV ECX,dword ptr [EDX]
CMP dword ptr [ESI + 0x4],ECX
JZ 0x00040628
MOV EAX,ESI
CALL 0x0003e490
MOV ESI,EAX
MOV EAX,dword ptr [EDI]
MOV byte ptr [ESI + 0x18],0x3
MOV dword ptr [ESI + 0x8],EAX
CALL 0x0003f930
SUB ESP,0x8
MOV dword ptr [ESI + 0x10],EAX
LEA EAX,[EBX + 0x93a0]
MOV dword ptr [ESI + 0x14],EDX
MOV dword ptr [ESI + 0x24],EAX
LEA EAX,[EBX + 0x9360]
PUSH dword ptr [EAX]
PUSH ESI
CALL 0x0003e210
OR byte ptr [ESI + 0x1],0x1
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x0004e050
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESI + 0xc]
AND byte ptr [ESI + 0x1],0xfd
MOV ECX,dword ptr [ESI + 0x4]
TEST byte ptr [ESI],0x1
JZ 0x00040244
CMP EAX,ECX
JZ 0x00040420
MOV EDI,dword ptr [EBX + 0xffffffa0]
LEA EAX,[EDI + 0xc0]
CMP ECX,EAX
JZ 0x00040469
LEA EAX,[EBX + 0x94a4]
MOV EAX,dword ptr [EAX]
CMP dword ptr [ESI + 0x24],EAX
JZ 0x000406e8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf384]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00031620
POP EDI
POP EBP
PUSH 0x0
PUSH ESI
CALL 0x0003fbf0
MOV ESI,EAX
CALL 0x0003e6c0
ADD ESP,0x10
JMP 0x0004031a
CMP byte ptr [ESI + 0x18],0x3
JZ 0x0004025b
MOVZX EAX,byte ptr [ESI]
SHR AL,0x6
AND EAX,0x1
JMP 0x00040461
MOV ECX,dword ptr [ESI + 0xc]
MOV EDI,dword ptr [EBX + 0xffffffa0]
MOV EBP,dword ptr [ECX + 0x4]
MOV dword ptr [ESP + 0x8],ECX
LEA ECX,[EDI + 0xc0]
CMP dword ptr [EBP + 0x14],ECX
JZ 0x00040640
CMP dword ptr [EDX],EAX
JNZ 0x000403bb
MOV EAX,dword ptr [EBP + 0x14]
TEST byte ptr [EAX + 0x15],0x10
JZ 0x00040660
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
SHR AL,0x6
AND EAX,0x1
TEST AL,AL
JNZ 0x00040276
MOV EAX,ESI
CALL 0x0003f930
OR EDX,EAX
JZ 0x00040540
MOVZX EAX,byte ptr [ESI]
MOV EBP,dword ptr [ESI + 0x4]
AND EAX,0x1
MOV byte ptr [ESP + 0x8],AL
JZ 0x00040550
LEA ECX,[EBX + 0x9410]
CMP EBP,dword ptr [ECX]
JZ 0x00040688
LEA EAX,[EDI + 0xc0]
MOV EDX,EBP
CMP EBP,EAX
JZ 0x000406af
LEA EAX,[EBX + 0x936c]
CMP dword ptr [EAX],EDX
JZ 0x000405ac
MOV EAX,ESI
CALL 0x0003f930
MOV EDI,EAX
TEST byte ptr [ESI],0x1
JZ 0x00040630
LEA EDX,[EBX + 0x9410]
MOV EAX,dword ptr [ESI + 0x4]
CMP EAX,dword ptr [EDX]
JZ 0x00040780
SUB ESP,0x4
MOV EBP,dword ptr [EAX]
LEA EAX,[EBX + 0xfffe3e78]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
LEA EDX,[EBX + 0xfffdfaaa]
MOV dword ptr [ESP],EDI
PUSH EDX
PUSH EBP
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x00031620
ADD ESP,0x20
JMP 0x0004031a
LEA EAX,[EBX + 0x94a4]
MOV ESI,dword ptr [EAX]
CALL 0x0002a520
SUB ESP,0xc
PUSH ESI
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0x937c]
PUSH dword ptr [EAX]
PUSH dword ptr [ESP + 0x4c]
CALL 0x0003c9b0
ADD ESP,0x20
MOV ESI,EAX
JMP 0x0004031a
MOV EAX,ESI
CALL 0x0003e6c0
JMP 0x0004031a
MOV EDX,dword ptr [EBP + 0x14]
TEST byte ptr [EBP + 0x10],0x4
JNZ 0x000404a9
LEA EAX,[EDI + 0xc0]
CMP EDX,EAX
JZ 0x00040590
TEST byte ptr [EDX + 0x15],0x10
JZ 0x000404a9
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0xc
PUSH ESI
CALL 0x0003dc20
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000405ac
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x000404a9
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0xc
PUSH ESI
CALL 0x0003dc20
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x000404a9
LEA EAX,[EBX + 0x937c]
LEA EDX,[EBX + 0x93f0]
MOV EAX,dword ptr [EAX]
CMP EAX,dword ptr [EDX]
JZ 0x00040540
LEA EDX,[EBX + 0x936c]
CMP EAX,dword ptr [EDX]
JZ 0x000405ea
CMP byte ptr [ESP + 0x8],0x0
JZ 0x000405df
LEA EDX,[EBX + 0x9410]
CMP EBP,dword ptr [EDX]
JNZ 0x000405e2
MOV EDX,dword ptr [ESI + 0xc]
MOV EBP,dword ptr [EDX + 0x4]
MOV EBP,dword ptr [EBP + 0x14]
CMP EAX,EBP
JNZ 0x000404b7
MOV EAX,ESI
CALL 0x0003f930
MOV EDI,EAX
MOV EBP,EDX
CALL 0x0002a520
CMP EDI,EAX
MOV EAX,0x0
SBB EBP,EAX
JNC 0x0004031a
CALL 0x0002a520
SUB ESP,0x4
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x0003db40
ADD ESP,0x10
JMP 0x0004031a
MOV ESI,dword ptr [ESI + 0xc]
JMP 0x00040347
MOV EAX,ESI
MOV EAX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x14]
JMP 0x000404da
MOV EAX,dword ptr [ESP + 0x8]
CMP byte ptr [EAX + 0x18],0x3
JNZ 0x00040454
TEST byte ptr [ECX + 0x15],0x10
JNZ 0x00040454
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0x8]
TEST byte ptr [EAX],0x40
JNZ 0x00040276
JMP 0x000403bb
MOV EAX,ESI
AND byte ptr [EAX],0xbf
JMP 0x00040469
MOV EAX,dword ptr [ESI + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
TEST byte ptr [EAX + 0x10],0x4
MOV EDX,dword ptr [EAX + 0x14]
JNZ 0x000404a9
LEA EAX,[EDI + 0xc0]
CMP EDX,EAX
JZ 0x000406af
TEST byte ptr [EDX + 0x15],0x10
JZ 0x000404a9
MOV dword ptr [ESP + 0xc],ECX
SUB ESP,0xc
PUSH ESI
CALL 0x0003dc20
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x000405ac
MOV EDX,EBP
CMP EBP,dword ptr [ECX]
JNZ 0x000404a9
MOV EAX,dword ptr [ESI + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX + 0x14]
JMP 0x000404a9
MOV EAX,ESI
CALL 0x0003f930
MOV EBP,EAX
MOV EDI,EDX
CALL 0x0002a520
XOR EAX,EBP
XOR EDX,EDI
OR EDX,EAX
JNZ 0x000403cc
MOV EAX,dword ptr [ESI + 0x4]
TEST byte ptr [ESI],0x1
JZ 0x0004078e
LEA EDX,[EBX + 0x9410]
CMP dword ptr [EDX],EAX
JZ 0x00040788
LEA EDX,[EBX + 0x937c]
CMP dword ptr [EDX],EAX
JNZ 0x000403cc
JMP 0x0004031a
LEA EBP,[EBX + 0x937c]
MOV EDX,dword ptr [EBP]
MOV dword ptr [ESI + 0xc],EAX
MOV dword ptr [ESI + 0x4],EDX
CALL 0x0002a520
MOV dword ptr [ESI + 0x10],EAX
MOV dword ptr [ESI + 0x14],EDX
JMP 0x0004031a
MOV EAX,dword ptr [ESI + 0x10]
MOV EDX,dword ptr [ESI + 0x14]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
CALL 0x0002a520
XOR EAX,dword ptr [ESP + 0x8]
XOR EDX,dword ptr [ESP + 0xc]
OR EDX,EAX
JNZ 0x00040212
MOV EAX,dword ptr [EDI]
JMP 0x00040736
MOV EAX,dword ptr [ESI + 0xc]
JMP 0x00040632
MOV EAX,dword ptr [ESI + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x14]
JMP 0x0004071a
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbyte * FUN_000401a0(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}\n\n" comment (function_definition "byte * FUN_000401a0(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}" type_identifier (pointer_declarator "* FUN_000401a0(undefined4 param_1)" * (function_declarator "FUN_000401a0(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) )))) (compound_statement "{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "longlong lVar13;" type_identifier identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "longlong lVar15;" type_identifier identifier ;) (declaration "byte local_24;" type_identifier identifier ;) (expression_statement "pbVar3 = (byte *)FUN_00040020(param_1,0);" (assignment_expression "pbVar3 = (byte *)FUN_00040020(param_1,0)" identifier = (cast_expression "(byte *)FUN_00040020(param_1,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00040020(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))))) ;) (expression_statement "puVar10 = DAT_00081410;" (assignment_expression "puVar10 = DAT_00081410" identifier = identifier) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }" { (if_statement "if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" if (parenthesized_expression "((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0))" ( (binary_expression "(DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)" (parenthesized_expression "(DAT_00081428 == 0)" ( (binary_expression "DAT_00081428 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)" ( (comma_expression "iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0" (assignment_expression "iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1)" identifier = (call_expression "(**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))" ( (pointer_expression "**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" * (pointer_expression "*(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" * (cast_expression "(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00081544 + 4) + 0x11c)" ( (binary_expression "*(int *)(DAT_00081544 + 4) + 0x11c" (pointer_expression "*(int *)(DAT_00081544 + 4)" * (cast_expression "(int *)(DAT_00081544 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081544 + 4)" ( (binary_expression "DAT_00081544 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00081544,param_1)" ( identifier , identifier )))) , (comma_expression "iVar9 = DAT_000814a4, iVar5 != 0" (assignment_expression "iVar9 = DAT_000814a4" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }" { (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);" (assignment_expression "pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" identifier = (cast_expression "(byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" identifier (argument_list "(param_1,DAT_0008137c,uVar14,iVar9)" ( identifier , identifier , identifier , identifier ))))) ;) }) (else_clause "else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" else (compound_statement "{\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" { (expression_statement "iVar9 = DAT_000814a4;" (assignment_expression "iVar9 = DAT_000814a4" identifier = identifier) ;) (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);" (assignment_expression "pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" identifier = (cast_expression "(byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" identifier (argument_list "(param_1,DAT_0008137c,uVar14,iVar9)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "FUN_0003cac0(pbVar3);" (call_expression "FUN_0003cac0(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "puVar11 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar11 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }" { (expression_statement "pbVar3[1] = pbVar3[1] & 0xfd;" (assignment_expression "pbVar3[1] = pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = (binary_expression "pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) & number_literal)) ;) (labeled_statement "LAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" statement_identifier : (if_statement "if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" if (parenthesized_expression "(((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3))" ( (binary_expression "((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)" (parenthesized_expression "((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "(undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0" (cast_expression "(undefined *)puVar11[5]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[5]" identifier [ number_literal ])) == (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal)) )) && (parenthesized_expression "(pbVar3[0x18] != 3)" ( (binary_expression "pbVar3[0x18] != 3" (subscript_expression "pbVar3[0x18]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }" { (expression_statement "bVar2 = *pbVar3 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar3 >> 6 & 1" identifier = (binary_expression "*pbVar3 >> 6 & 1" (binary_expression "*pbVar3 >> 6" (pointer_expression "*pbVar3" * identifier) >> number_literal) & number_literal)) ;) (labeled_statement "LAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;" statement_identifier : (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;)) (if_statement "if (bVar2 == 0) goto LAB_00040469;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00040469;" goto statement_identifier ;)) }) (else_clause "else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" else (compound_statement "{\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" { (expression_statement "bVar2 = *pbVar3 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar3 >> 6 & 1" identifier = (binary_expression "*pbVar3 >> 6 & 1" (binary_expression "*pbVar3 >> 6" (pointer_expression "*pbVar3" * identifier) >> number_literal) & number_literal)) ;) (if_statement "if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;" if (parenthesized_expression "((((undefined *)puVar11[5])[0x15] & 0x10) != 0)" ( (binary_expression "(((undefined *)puVar11[5])[0x15] & 0x10) != 0" (parenthesized_expression "(((undefined *)puVar11[5])[0x15] & 0x10)" ( (binary_expression "((undefined *)puVar11[5])[0x15] & 0x10" (subscript_expression "((undefined *)puVar11[5])[0x15]" (parenthesized_expression "((undefined *)puVar11[5])" ( (cast_expression "(undefined *)puVar11[5]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[5]" identifier [ number_literal ])) )) [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00040461;" goto statement_identifier ;)) (labeled_statement "joined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" statement_identifier : (if_statement "if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" { (labeled_statement "LAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" statement_identifier : (if_statement "if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" if (parenthesized_expression "(*(int *)(pbVar3 + 0x24) == DAT_000814a4)" ( (binary_expression "*(int *)(pbVar3 + 0x24) == DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0x24)" * (cast_expression "(int *)(pbVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x24)" ( (binary_expression "pbVar3 + 0x24" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" { (expression_statement "lVar13 = FUN_0003f930();" (assignment_expression "lVar13 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar15 = FUN_0002a520();" (assignment_expression "lVar15 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }" if (parenthesized_expression "(lVar13 == lVar15)" ( (binary_expression "lVar13 == lVar15" identifier == identifier) )) (compound_statement "{\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }" { (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }" { (labeled_statement "LAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];" statement_identifier : (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;)) }) (else_clause "else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" else (if_statement "if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" if (parenthesized_expression "(DAT_00081410 == puVar10)" ( (binary_expression "DAT_00081410 == puVar10" identifier == identifier) )) (compound_statement "{\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" { (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0004078e;" goto statement_identifier ;) })))) (if_statement "if (DAT_0008137c == puVar10) goto LAB_0004031a;" if (parenthesized_expression "(DAT_0008137c == puVar10)" ( (binary_expression "DAT_0008137c == puVar10" identifier == identifier) )) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;)) })) }))) (expression_statement "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);" (assignment_expression "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5)" identifier = (call_expression "dcgettext(0,"symbol `%s\' is already defined",5)" identifier (argument_list "(0,"symbol `%s\' is already defined",5)" ( number_literal , (string_literal ""symbol `%s\' is already defined"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00031620(uVar4,param_1);" (call_expression "FUN_00031620(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (expression_statement "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);" (assignment_expression "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0)" identifier = (cast_expression "(byte *)FUN_0003fbf0(pbVar3,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003fbf0(pbVar3,0)" identifier (argument_list "(pbVar3,0)" ( identifier , number_literal ))))) ;) (expression_statement "FUN_0003e6c0();" (call_expression "FUN_0003e6c0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) }))) })))) (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);" (assignment_expression "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1)" identifier = (cast_expression "(byte *)FUN_0003fbf0(pbVar3,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003fbf0(pbVar3,1)" identifier (argument_list "(pbVar3,1)" ( identifier , number_literal ))))) ;) (expression_statement "FUN_0003db40(pbVar3,0,0);" (call_expression "FUN_0003db40(pbVar3,0,0)" identifier (argument_list "(pbVar3,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" identifier = identifier) ;) (if_statement "if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }" if (parenthesized_expression "((*pbVar3 & 1) != 0)" ( (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }" { (if_statement "if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;" if (parenthesized_expression "(*(undefined4 **)(pbVar3 + 4) != DAT_00081410)" ( (binary_expression "*(undefined4 **)(pbVar3 + 4) != DAT_00081410" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_00040469;" goto statement_identifier ;)) (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "*pbVar8 = *pbVar8 & 0xbf;" (assignment_expression "*pbVar8 = *pbVar8 & 0xbf" (pointer_expression "*pbVar8" * identifier) = (binary_expression "*pbVar8 & 0xbf" (pointer_expression "*pbVar8" * identifier) & number_literal)) ;) }) (else_clause "else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" else (compound_statement "{\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" { (if_statement "if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }" if (parenthesized_expression "(DAT_00081410 != puVar11)" ( (binary_expression "DAT_00081410 != puVar11" identifier != identifier) )) (compound_statement "{\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }" { (if_statement "if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }" if (parenthesized_expression "((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13))))" ( (binary_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))" (parenthesized_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0))" ( (binary_expression "puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal) )))) )) && (parenthesized_expression "(((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))" ( (parenthesized_expression "((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13))" ( (binary_expression "(*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)" (parenthesized_expression "(*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11))" ( (binary_expression "*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)" (binary_expression "*(int *)(pbVar3 + 0xc) != DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(DAT_0008137c != puVar11)" ( (binary_expression "DAT_0008137c != puVar11" identifier != identifier) ))) )) || (parenthesized_expression "(lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)" ( (comma_expression "lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13" (assignment_expression "lVar13 = *(longlong *)(pbVar3 + 0x10)" identifier = (pointer_expression "*(longlong *)(pbVar3 + 0x10)" * (cast_expression "(longlong *)(pbVar3 + 0x10)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) ))))) , (comma_expression "lVar15 = FUN_0002a520(), lVar15 != lVar13" (assignment_expression "lVar15 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) , (binary_expression "lVar15 != lVar13" identifier != identifier))) ))) )) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }" { (expression_statement "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);" (assignment_expression "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5)" identifier = (call_expression "dcgettext(0,"symbol `%s\' is already defined",5)" identifier (argument_list "(0,"symbol `%s\' is already defined",5)" ( number_literal , (string_literal ""symbol `%s\' is already defined"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00031620(uVar4,param_1);" (call_expression "FUN_00031620(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (return_statement "return pbVar3;" return identifier ;) })) (expression_statement "puVar10 = DAT_0008137c;" (assignment_expression "puVar10 = DAT_0008137c" identifier = identifier) ;) (expression_statement "*(int *)(pbVar3 + 0xc) = DAT_000814a4;" (assignment_expression "*(int *)(pbVar3 + 0xc) = DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(pbVar3 + 4) = puVar10;" (assignment_expression "*(undefined4 **)(pbVar3 + 4) = puVar10" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pbVar3 + 0x10) = uVar14;" (assignment_expression "*(undefined8 *)(pbVar3 + 0x10) = uVar14" (pointer_expression "*(undefined8 *)(pbVar3 + 0x10)" * (cast_expression "(undefined8 *)(pbVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "pbVar3 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar3 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pbVar3[1] = pbVar3[1] & 0xfd;" (assignment_expression "pbVar3[1] = pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = (binary_expression "pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "puVar11 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar11 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar3 & 1) == 0) goto LAB_00040244;" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00040244;" goto statement_identifier ;)) (if_statement "if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }" if (parenthesized_expression "(puVar10 == puVar11)" ( (binary_expression "puVar10 == puVar11" identifier == identifier) )) (compound_statement "{\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }" { (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" if (parenthesized_expression "(*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0" (pointer_expression "*(undefined **)(*(int *)(pbVar8 + 4) + 0x14)" * (cast_expression "(undefined **)(*(int *)(pbVar8 + 4) + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" ( (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" * (cast_expression "(int *)(pbVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) + number_literal) )))) == (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal)) )) (compound_statement "{\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }" { (if_statement "if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" if (parenthesized_expression "(pbVar8[0x18] == 3)" ( (binary_expression "pbVar8[0x18] == 3" (subscript_expression "pbVar8[0x18]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" { (expression_statement "bVar2 = PTR__bfd_std_section_00077fa0[0xd5];" (assignment_expression "bVar2 = PTR__bfd_std_section_00077fa0[0xd5]" identifier = (subscript_expression "PTR__bfd_std_section_00077fa0[0xd5]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x00040652;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" else (compound_statement "{\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" { (if_statement "if (DAT_00081410 != puVar10) goto LAB_000403bb;" if (parenthesized_expression "(DAT_00081410 != puVar10)" ( (binary_expression "DAT_00081410 != puVar10" identifier != identifier) )) (goto_statement "goto LAB_000403bb;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);" (assignment_expression "bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" identifier = (pointer_expression "*(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" * (cast_expression "(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" ( (binary_expression "*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15" (pointer_expression "*(int *)(*(int *)(pbVar8 + 4) + 0x14)" * (cast_expression "(int *)(*(int *)(pbVar8 + 4) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" ( (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" * (cast_expression "(int *)(pbVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "joined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" statement_identifier : (if_statement "if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" if (parenthesized_expression "((bVar2 & 0x10) == 0)" ( (binary_expression "(bVar2 & 0x10) == 0" (parenthesized_expression "(bVar2 & 0x10)" ( (binary_expression "bVar2 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" { (expression_statement "bVar2 = *pbVar8 & 0x40;" (assignment_expression "bVar2 = *pbVar8 & 0x40" identifier = (binary_expression "*pbVar8 & 0x40" (pointer_expression "*pbVar8" * identifier) & number_literal)) ;) (goto_statement "goto joined_r0x00040270;" goto statement_identifier ;) }))) }))) (expression_statement "bVar2 = *pbVar8 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar8 >> 6 & 1" identifier = (binary_expression "*pbVar8 >> 6 & 1" (binary_expression "*pbVar8 >> 6" (pointer_expression "*pbVar8" * identifier) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_00040461;" goto statement_identifier ;) })) (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;" if (parenthesized_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0))" ( (binary_expression "puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal) )))) )) (goto_statement "goto LAB_000403bb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00040469:\n  lVar13 = FUN_0003f930();" statement_identifier : (expression_statement "lVar13 = FUN_0003f930();" (assignment_expression "lVar13 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }" { (labeled_statement "LAB_00040540:\n    FUN_0003e6c0();" statement_identifier : (expression_statement "FUN_0003e6c0();" (call_expression "FUN_0003e6c0()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_24 = *pbVar3 & 1;" (assignment_expression "local_24 = *pbVar3 & 1" identifier = (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal)) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }" { (expression_statement "puVar11 = (undefined4 *)puVar10[5];" (assignment_expression "puVar11 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;" if (parenthesized_expression "((*(byte *)(puVar10 + 4) & 4) != 0)" ( (binary_expression "(*(byte *)(puVar10 + 4) & 4) != 0" (parenthesized_expression "(*(byte *)(puVar10 + 4) & 4)" ( (binary_expression "*(byte *)(puVar10 + 4) & 4" (pointer_expression "*(byte *)(puVar10 + 4)" * (cast_expression "(byte *)(puVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (if_statement "if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" if (parenthesized_expression "(puVar11 == (undefined4 *)(puVar12 + 0xc0))" ( (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0)" identifier == (cast_expression "(undefined4 *)(puVar12 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc0)" ( (binary_expression "puVar12 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" { (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" identifier = (call_expression "FUN_0003dc20(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier )))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" else (compound_statement "{\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" { (if_statement "if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;" if (parenthesized_expression "((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10)" ( (binary_expression "*(byte *)((int)puVar11 + 0x15) & 0x10" (pointer_expression "*(byte *)((int)puVar11 + 0x15)" * (cast_expression "(byte *)((int)puVar11 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x15)" ( (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" identifier = (call_expression "FUN_0003dc20(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier )))) ;) }))) (if_statement "if (iVar9 == 0) goto LAB_000404a9;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (labeled_statement "LAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;" statement_identifier : (if_statement "if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;" if (parenthesized_expression "(DAT_0008137c == DAT_000813f0)" ( (binary_expression "DAT_0008137c == DAT_000813f0" identifier == identifier) )) (goto_statement "goto LAB_00040540;" goto statement_identifier ;))) (if_statement "if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }" if (parenthesized_expression "(DAT_0008137c != DAT_0008136c)" ( (binary_expression "DAT_0008137c != DAT_0008136c" identifier != identifier) )) (compound_statement "{\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }" { (if_statement "if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }" { (labeled_statement "LAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];" statement_identifier : (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;)) }) (else_clause "else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" else (if_statement "if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" { (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000405df;" goto statement_identifier ;) })))) (if_statement "if (DAT_0008137c != puVar10) goto LAB_000404b7;" if (parenthesized_expression "(DAT_0008137c != puVar10)" ( (binary_expression "DAT_0008137c != puVar10" identifier != identifier) )) (goto_statement "goto LAB_000404b7;" goto statement_identifier ;)) })) (expression_statement "uVar14 = FUN_0003f930();" (assignment_expression "uVar14 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = FUN_0002a520();" (assignment_expression "uVar7 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }" if (parenthesized_expression "((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7))" ( (binary_expression "(uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)" (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar14 >> 0x20)" ( (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (call_expression "(uint)((uint)uVar14 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar14 < uVar7)" ( (binary_expression "(uint)uVar14 < uVar7" (cast_expression "(uint)uVar14" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) )) (compound_statement "{\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }" { (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0003db40(pbVar3,uVar14);" (call_expression "FUN_0003db40(pbVar3,uVar14)" identifier (argument_list "(pbVar3,uVar14)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (if_statement "if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }" { (expression_statement "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);" (assignment_expression "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" * (cast_expression "(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;" if (parenthesized_expression "(((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        )))" ( (binary_expression "((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))" (parenthesized_expression "((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0)" ( (binary_expression "(*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0" (parenthesized_expression "(*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4)" ( (binary_expression "*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4" (pointer_expression "*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" * (cast_expression "(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" ( (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))" ( (parenthesized_expression "(puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        )" ( (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)" (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0)" identifier == (cast_expression "(undefined4 *)(puVar12 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc0)" ( (binary_expression "puVar12 + 0xc0" identifier + number_literal) )))) || (parenthesized_expression "((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10)" ( (binary_expression "*(byte *)((int)puVar11 + 0x15) & 0x10" (pointer_expression "*(byte *)((int)puVar11 + 0x15)" * (cast_expression "(byte *)((int)puVar11 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x15)" ( (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000406af;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" else (compound_statement "{\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" { (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (if_statement "if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }" if (parenthesized_expression "(puVar10 == (undefined4 *)(puVar12 + 0xc0))" ( (binary_expression "puVar10 == (undefined4 *)(puVar12 + 0xc0)" identifier == (cast_expression "(undefined4 *)(puVar12 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc0)" ( (binary_expression "puVar12 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }" { (labeled_statement "LAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);" statement_identifier : (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" identifier = (call_expression "FUN_0003dc20(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier )))) ;)) (if_statement "if (iVar9 != 0) goto LAB_000405ac;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000405ac;" goto statement_identifier ;)) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (if_statement "if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }" { (expression_statement "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);" (assignment_expression "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" * (cast_expression "(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) })) })) }))) (labeled_statement "LAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;" statement_identifier : (if_statement "if (DAT_0008136c == puVar11) goto LAB_000405ac;" if (parenthesized_expression "(DAT_0008136c == puVar11)" ( (binary_expression "DAT_0008136c == puVar11" identifier == identifier) )) (goto_statement "goto LAB_000405ac;" goto statement_identifier ;))) (labeled_statement "LAB_000404b7:\n  uVar4 = FUN_0003f930();" statement_identifier : (expression_statement "uVar4 = FUN_0003f930();" (assignment_expression "uVar4 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" identifier = identifier) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }" { (labeled_statement "LAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);" statement_identifier : (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" * (cast_expression "(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" ( (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" * (cast_expression "(int *)(pbVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" else (compound_statement "{\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" { (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }" { (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00040632;" goto statement_identifier ;) })) }))) (expression_statement "uVar1 = *puVar10;" (assignment_expression "uVar1 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);" (assignment_expression "uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" identifier = (call_expression "dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" identifier (argument_list "(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" ( number_literal , (string_literal ""symbol `%s\' is already defined as \"%s\"/%s%ld"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);" (call_expression "FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4)" identifier (argument_list "(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4)" ( identifier , identifier , identifier , (pointer_expression "&DAT_00057aaa" & identifier) , identifier ))) ;) (labeled_statement "LAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" statement_identifier : (if_statement "if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" if (parenthesized_expression "(DAT_00081560 != 0)" ( (binary_expression "DAT_00081560 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" { (if_statement "if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }" if (parenthesized_expression "((*pbVar3 & 1) != 0)" ( (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }" { (if_statement "if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }" if (parenthesized_expression "(*(undefined4 **)(pbVar3 + 4) == DAT_00081410)" ( (binary_expression "*(undefined4 **)(pbVar3 + 4) == DAT_00081410" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }" { (expression_statement "pbVar3 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar3 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }" else (compound_statement "{\n        pbVar3 = (byte *)FUN_0003e490();\n      }" { (expression_statement "pbVar3 = (byte *)FUN_0003e490();" (assignment_expression "pbVar3 = (byte *)FUN_0003e490()" identifier = (cast_expression "(byte *)FUN_0003e490()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003e490()" identifier (argument_list "()" ( ))))) ;) }))) })) (expression_statement "iVar9 = DAT_00081560;" (assignment_expression "iVar9 = DAT_00081560" identifier = identifier) ;) (expression_statement "pbVar3[0x18] = 3;" (assignment_expression "pbVar3[0x18] = 3" (subscript_expression "pbVar3[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(pbVar3 + 8) = iVar9;" (assignment_expression "*(int *)(pbVar3 + 8) = iVar9" (pointer_expression "*(int *)(pbVar3 + 8)" * (cast_expression "(int *)(pbVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 8)" ( (binary_expression "pbVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = FUN_0003f930();" (assignment_expression "uVar14 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pbVar3 + 0x10) = uVar14;" (assignment_expression "*(undefined8 *)(pbVar3 + 0x10) = uVar14" (pointer_expression "*(undefined8 *)(pbVar3 + 0x10)" * (cast_expression "(undefined8 *)(pbVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;" (assignment_expression "*(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0" (pointer_expression "*(undefined4 **)(pbVar3 + 0x24)" * (cast_expression "(undefined4 **)(pbVar3 + 0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0x24)" ( (binary_expression "pbVar3 + 0x24" identifier + number_literal) )))) = (pointer_expression "&DAT_000813a0" & identifier)) ;) (expression_statement "FUN_0003e210(pbVar3,DAT_00081360);" (call_expression "FUN_0003e210(pbVar3,DAT_00081360)" identifier (argument_list "(pbVar3,DAT_00081360)" ( identifier , identifier ))) ;) (expression_statement "pbVar3[1] = pbVar3[1] | 1;" (assignment_expression "pbVar3[1] = pbVar3[1] | 1" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = (binary_expression "pbVar3[1] | 1" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) | number_literal)) ;) }))) (expression_statement "FUN_0004e050(pbVar3);" (call_expression "FUN_0004e050(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier ))) ;) (return_statement "return pbVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nsymbolS * colon(char *sym_name)\n\n{\n  undefined1 *puVar1;\n  asymbol *paVar2;\n  fragS *pfVar3;\n  byte bVar4;\n  symbolS *symbolP;\n  char *pcVar5;\n  bfd_boolean bVar6;\n  char *format;\n  symbolS *psVar7;\n  int iVar8;\n  segT paVar9;\n  segT paVar10;\n  undefined *puVar11;\n  valueT vVar12;\n  addressT aVar13;\n  addressT aVar14;\n  byte local_24;\n  \n  symbolP = symbol_find_noref(sym_name,0);\n  paVar9 = reg_section;\n  if (symbolP == (symbolS *)0x0) {\n    if ((flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)) {\n      aVar13 = frag_now_fix();\n      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);\n    }\n    else {\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }\n    goto LAB_0004031a;\n  }\n  paVar10 = (segT)symbolP->bsym;\n  if (((uint)symbolP->sy_flags & 1) == 0) {\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\nLAB_00040244:\n    if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')) {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    symbolP = symbol_clone(symbolP,1);\n    S_SET_VALUE(symbolP,0);\n    psVar7 = symbolP;\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n    }\n    *(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf;\n  }\n  else {\n    if (reg_section != paVar10) {\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }\n    symbolP = (symbolP->sy_value).X_op_symbol;\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\n    paVar10 = (segT)symbolP->bsym;\n    if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;\n    if (paVar9 == paVar10) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  vVar12 = S_GET_VALUE(symbolP);\n  if (vVar12 == 0) {\nLAB_00040540:\n    define_sym_at_dot(symbolP);\n    goto LAB_0004031a;\n  }\n  paVar9 = (segT)symbolP->bsym;\n  local_24 = (byte)((uint)symbolP->sy_flags & 1);\n  if (((uint)symbolP->sy_flags & 1) == 0) {\n    paVar10 = (segT)paVar9->flags;\n    if (((uint)paVar9->prev & 4) != 0) goto LAB_000404a9;\n    if (paVar10 == (segT)(puVar11 + 0xc0)) {\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    else {\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    if (iVar8 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (now_seg == data_section) goto LAB_00040540;\n    if (now_seg != bss_section) {\n      if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }\n      if (now_seg != paVar9) goto LAB_000404b7;\n    }\n    vVar12 = S_GET_VALUE(symbolP);\n    aVar13 = frag_now_fix();\n    if ((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)) {\n      aVar13 = frag_now_fix();\n      S_SET_VALUE(symbolP,aVar13);\n    }\n    goto LAB_0004031a;\n  }\n  if (paVar9 == reg_section) {\n    paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym;\n    paVar10 = paVar2->section;\n    if (((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))) goto LAB_000406af;\n  }\n  else {\n    paVar10 = paVar9;\n    if (paVar9 == (segT)(puVar11 + 0xc0)) {\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }\n  }\nLAB_000404a9:\n  if (bss_section == paVar10) goto LAB_000405ac;\nLAB_000404b7:\n  vVar12 = S_GET_VALUE(symbolP);\n  psVar7 = symbolP;\n  if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_00040632:\n    paVar9 = psVar7->bsym->section;\n  }\n  else {\n    paVar9 = (segT)symbolP->bsym;\n    if (paVar9 == reg_section) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }\n  }\n  pcVar5 = paVar9->name;\n  format = (char *)dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld");\n  as_bad(format,sym_name,pcVar5,&DAT_00057aaa,(int)vVar12);\nLAB_0004031a:\n  if (mri_common_symbol != (symbolS *)0x0) {\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }\n    psVar7 = mri_common_symbol;\n    (symbolP->sy_value).field_0x10 = 3;\n    (symbolP->sy_value).X_add_symbol = psVar7;\n    vVar12 = S_GET_VALUE(psVar7);\n    (symbolP->sy_value).X_add_number = vVar12;\n    symbolP->sy_frag = &zero_address_frag;\n    S_SET_SEGMENT(symbolP,expr_section);\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 | 1;\n  }\n  alpha_define_label(symbolP);\n  return symbolP;\n}\n\n" comment comment (function_definition "symbolS * colon(char *sym_name)\n\n{\n  undefined1 *puVar1;\n  asymbol *paVar2;\n  fragS *pfVar3;\n  byte bVar4;\n  symbolS *symbolP;\n  char *pcVar5;\n  bfd_boolean bVar6;\n  char *format;\n  symbolS *psVar7;\n  int iVar8;\n  segT paVar9;\n  segT paVar10;\n  undefined *puVar11;\n  valueT vVar12;\n  addressT aVar13;\n  addressT aVar14;\n  byte local_24;\n  \n  symbolP = symbol_find_noref(sym_name,0);\n  paVar9 = reg_section;\n  if (symbolP == (symbolS *)0x0) {\n    if ((flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)) {\n      aVar13 = frag_now_fix();\n      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);\n    }\n    else {\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }\n    goto LAB_0004031a;\n  }\n  paVar10 = (segT)symbolP->bsym;\n  if (((uint)symbolP->sy_flags & 1) == 0) {\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\nLAB_00040244:\n    if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')) {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    symbolP = symbol_clone(symbolP,1);\n    S_SET_VALUE(symbolP,0);\n    psVar7 = symbolP;\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n    }\n    *(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf;\n  }\n  else {\n    if (reg_section != paVar10) {\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }\n    symbolP = (symbolP->sy_value).X_op_symbol;\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\n    paVar10 = (segT)symbolP->bsym;\n    if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;\n    if (paVar9 == paVar10) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  vVar12 = S_GET_VALUE(symbolP);\n  if (vVar12 == 0) {\nLAB_00040540:\n    define_sym_at_dot(symbolP);\n    goto LAB_0004031a;\n  }\n  paVar9 = (segT)symbolP->bsym;\n  local_24 = (byte)((uint)symbolP->sy_flags & 1);\n  if (((uint)symbolP->sy_flags & 1) == 0) {\n    paVar10 = (segT)paVar9->flags;\n    if (((uint)paVar9->prev & 4) != 0) goto LAB_000404a9;\n    if (paVar10 == (segT)(puVar11 + 0xc0)) {\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    else {\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    if (iVar8 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (now_seg == data_section) goto LAB_00040540;\n    if (now_seg != bss_section) {\n      if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }\n      if (now_seg != paVar9) goto LAB_000404b7;\n    }\n    vVar12 = S_GET_VALUE(symbolP);\n    aVar13 = frag_now_fix();\n    if ((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)) {\n      aVar13 = frag_now_fix();\n      S_SET_VALUE(symbolP,aVar13);\n    }\n    goto LAB_0004031a;\n  }\n  if (paVar9 == reg_section) {\n    paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym;\n    paVar10 = paVar2->section;\n    if (((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))) goto LAB_000406af;\n  }\n  else {\n    paVar10 = paVar9;\n    if (paVar9 == (segT)(puVar11 + 0xc0)) {\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }\n  }\nLAB_000404a9:\n  if (bss_section == paVar10) goto LAB_000405ac;\nLAB_000404b7:\n  vVar12 = S_GET_VALUE(symbolP);\n  psVar7 = symbolP;\n  if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_00040632:\n    paVar9 = psVar7->bsym->section;\n  }\n  else {\n    paVar9 = (segT)symbolP->bsym;\n    if (paVar9 == reg_section) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }\n  }\n  pcVar5 = paVar9->name;\n  format = (char *)dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld");\n  as_bad(format,sym_name,pcVar5,&DAT_00057aaa,(int)vVar12);\nLAB_0004031a:\n  if (mri_common_symbol != (symbolS *)0x0) {\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }\n    psVar7 = mri_common_symbol;\n    (symbolP->sy_value).field_0x10 = 3;\n    (symbolP->sy_value).X_add_symbol = psVar7;\n    vVar12 = S_GET_VALUE(psVar7);\n    (symbolP->sy_value).X_add_number = vVar12;\n    symbolP->sy_frag = &zero_address_frag;\n    S_SET_SEGMENT(symbolP,expr_section);\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 | 1;\n  }\n  alpha_define_label(symbolP);\n  return symbolP;\n}" type_identifier (pointer_declarator "* colon(char *sym_name)" * (function_declarator "colon(char *sym_name)" identifier (parameter_list "(char *sym_name)" ( (parameter_declaration "char *sym_name" primitive_type (pointer_declarator "*sym_name" * identifier)) )))) (compound_statement "{\n  undefined1 *puVar1;\n  asymbol *paVar2;\n  fragS *pfVar3;\n  byte bVar4;\n  symbolS *symbolP;\n  char *pcVar5;\n  bfd_boolean bVar6;\n  char *format;\n  symbolS *psVar7;\n  int iVar8;\n  segT paVar9;\n  segT paVar10;\n  undefined *puVar11;\n  valueT vVar12;\n  addressT aVar13;\n  addressT aVar14;\n  byte local_24;\n  \n  symbolP = symbol_find_noref(sym_name,0);\n  paVar9 = reg_section;\n  if (symbolP == (symbolS *)0x0) {\n    if ((flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)) {\n      aVar13 = frag_now_fix();\n      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);\n    }\n    else {\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }\n    goto LAB_0004031a;\n  }\n  paVar10 = (segT)symbolP->bsym;\n  if (((uint)symbolP->sy_flags & 1) == 0) {\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\nLAB_00040244:\n    if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')) {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    symbolP = symbol_clone(symbolP,1);\n    S_SET_VALUE(symbolP,0);\n    psVar7 = symbolP;\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n    }\n    *(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf;\n  }\n  else {\n    if (reg_section != paVar10) {\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }\n    symbolP = (symbolP->sy_value).X_op_symbol;\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\n    paVar10 = (segT)symbolP->bsym;\n    if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;\n    if (paVar9 == paVar10) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  vVar12 = S_GET_VALUE(symbolP);\n  if (vVar12 == 0) {\nLAB_00040540:\n    define_sym_at_dot(symbolP);\n    goto LAB_0004031a;\n  }\n  paVar9 = (segT)symbolP->bsym;\n  local_24 = (byte)((uint)symbolP->sy_flags & 1);\n  if (((uint)symbolP->sy_flags & 1) == 0) {\n    paVar10 = (segT)paVar9->flags;\n    if (((uint)paVar9->prev & 4) != 0) goto LAB_000404a9;\n    if (paVar10 == (segT)(puVar11 + 0xc0)) {\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    else {\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    if (iVar8 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (now_seg == data_section) goto LAB_00040540;\n    if (now_seg != bss_section) {\n      if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }\n      if (now_seg != paVar9) goto LAB_000404b7;\n    }\n    vVar12 = S_GET_VALUE(symbolP);\n    aVar13 = frag_now_fix();\n    if ((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)) {\n      aVar13 = frag_now_fix();\n      S_SET_VALUE(symbolP,aVar13);\n    }\n    goto LAB_0004031a;\n  }\n  if (paVar9 == reg_section) {\n    paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym;\n    paVar10 = paVar2->section;\n    if (((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))) goto LAB_000406af;\n  }\n  else {\n    paVar10 = paVar9;\n    if (paVar9 == (segT)(puVar11 + 0xc0)) {\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }\n  }\nLAB_000404a9:\n  if (bss_section == paVar10) goto LAB_000405ac;\nLAB_000404b7:\n  vVar12 = S_GET_VALUE(symbolP);\n  psVar7 = symbolP;\n  if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_00040632:\n    paVar9 = psVar7->bsym->section;\n  }\n  else {\n    paVar9 = (segT)symbolP->bsym;\n    if (paVar9 == reg_section) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }\n  }\n  pcVar5 = paVar9->name;\n  format = (char *)dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld");\n  as_bad(format,sym_name,pcVar5,&DAT_00057aaa,(int)vVar12);\nLAB_0004031a:\n  if (mri_common_symbol != (symbolS *)0x0) {\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }\n    psVar7 = mri_common_symbol;\n    (symbolP->sy_value).field_0x10 = 3;\n    (symbolP->sy_value).X_add_symbol = psVar7;\n    vVar12 = S_GET_VALUE(psVar7);\n    (symbolP->sy_value).X_add_number = vVar12;\n    symbolP->sy_frag = &zero_address_frag;\n    S_SET_SEGMENT(symbolP,expr_section);\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 | 1;\n  }\n  alpha_define_label(symbolP);\n  return symbolP;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "asymbol *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "fragS *pfVar3;" type_identifier (pointer_declarator "*pfVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "symbolS *symbolP;" type_identifier (pointer_declarator "*symbolP" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "bfd_boolean bVar6;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "symbolS *psVar7;" type_identifier (pointer_declarator "*psVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "segT paVar9;" type_identifier identifier ;) (declaration "segT paVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "valueT vVar12;" type_identifier identifier ;) (declaration "addressT aVar13;" type_identifier identifier ;) (declaration "addressT aVar14;" type_identifier identifier ;) (declaration "byte local_24;" type_identifier identifier ;) (expression_statement "symbolP = symbol_find_noref(sym_name,0);" (assignment_expression "symbolP = symbol_find_noref(sym_name,0)" identifier = (call_expression "symbol_find_noref(sym_name,0)" identifier (argument_list "(sym_name,0)" ( identifier , number_literal )))) ;) (expression_statement "paVar9 = reg_section;" (assignment_expression "paVar9 = reg_section" identifier = identifier) ;) (if_statement "if (symbolP == (symbolS *)0x0) {\n    if ((flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)) {\n      aVar13 = frag_now_fix();\n      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);\n    }\n    else {\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "(symbolP == (symbolS *)0x0)" ( (binary_expression "symbolP == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)) {\n      aVar13 = frag_now_fix();\n      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);\n    }\n    else {\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }\n    goto LAB_0004031a;\n  }" { (if_statement "if ((flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)) {\n      aVar13 = frag_now_fix();\n      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);\n    }\n    else {\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }" if (parenthesized_expression "((flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0))" ( (binary_expression "(flag_keep_locals == 0) &&\n       (bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)" (parenthesized_expression "(flag_keep_locals == 0)" ( (binary_expression "flag_keep_locals == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0)" ( (comma_expression "bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = frag_now,\n       bVar6 != 0" (assignment_expression "bVar6 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name)" identifier = (call_expression "(*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name)" (parenthesized_expression "(*stdoutput->xvec->_bfd_is_local_label_name)" ( (pointer_expression "*stdoutput->xvec->_bfd_is_local_label_name" * (field_expression "stdoutput->xvec->_bfd_is_local_label_name" (field_expression "stdoutput->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(stdoutput,sym_name)" ( identifier , identifier )))) , (comma_expression "pfVar3 = frag_now,\n       bVar6 != 0" (assignment_expression "pfVar3 = frag_now" identifier = identifier) , (binary_expression "bVar6 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n      aVar13 = frag_now_fix();\n      symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);\n    }" { (expression_statement "aVar13 = frag_now_fix();" (assignment_expression "aVar13 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3);" (assignment_expression "symbolP = (symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3)" identifier = (cast_expression "(symbolS *)local_symbol_make(sym_name,now_seg,aVar13,pfVar3)" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "local_symbol_make(sym_name,now_seg,aVar13,pfVar3)" identifier (argument_list "(sym_name,now_seg,aVar13,pfVar3)" ( identifier , identifier , identifier , identifier ))))) ;) }) (else_clause "else {\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }" else (compound_statement "{\n      pfVar3 = frag_now;\n      aVar13 = frag_now_fix();\n      symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);\n      symbol_table_insert(symbolP);\n    }" { (expression_statement "pfVar3 = frag_now;" (assignment_expression "pfVar3 = frag_now" identifier = identifier) ;) (expression_statement "aVar13 = frag_now_fix();" (assignment_expression "aVar13 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3);" (assignment_expression "symbolP = symbol_new(sym_name,now_seg,aVar13,pfVar3)" identifier = (call_expression "symbol_new(sym_name,now_seg,aVar13,pfVar3)" identifier (argument_list "(sym_name,now_seg,aVar13,pfVar3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "symbol_table_insert(symbolP);" (call_expression "symbol_table_insert(symbolP)" identifier (argument_list "(symbolP)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "paVar10 = (segT)symbolP->bsym;" (assignment_expression "paVar10 = (segT)symbolP->bsym" identifier = (cast_expression "(segT)symbolP->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "symbolP->bsym" identifier -> field_identifier))) ;) (if_statement "if (((uint)symbolP->sy_flags & 1) == 0) {\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\nLAB_00040244:\n    if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')) {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    symbolP = symbol_clone(symbolP,1);\n    S_SET_VALUE(symbolP,0);\n    psVar7 = symbolP;\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n    }\n    *(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf;\n  }\n  else {\n    if (reg_section != paVar10) {\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }\n    symbolP = (symbolP->sy_value).X_op_symbol;\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\n    paVar10 = (segT)symbolP->bsym;\n    if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;\n    if (paVar9 == paVar10) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" if (parenthesized_expression "(((uint)symbolP->sy_flags & 1) == 0)" ( (binary_expression "((uint)symbolP->sy_flags & 1) == 0" (parenthesized_expression "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\nLAB_00040244:\n    if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')) {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    symbolP = symbol_clone(symbolP,1);\n    S_SET_VALUE(symbolP,0);\n    psVar7 = symbolP;\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n    }\n    *(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf;\n  }" { (expression_statement "puVar1 = &(symbolP->sy_flags).field_0x1;" (assignment_expression "puVar1 = &(symbolP->sy_flags).field_0x1" identifier = (pointer_expression "&(symbolP->sy_flags).field_0x1" & (field_expression "(symbolP->sy_flags).field_0x1" (parenthesized_expression "(symbolP->sy_flags)" ( (field_expression "symbolP->sy_flags" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xfd;" (assignment_expression "*puVar1 = *puVar1 & 0xfd" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xfd" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (labeled_statement "LAB_00040244:\n    if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')) {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }" statement_identifier : (if_statement "if (((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')) {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }" if (parenthesized_expression "(((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03'))" ( (binary_expression "((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0) &&\n       ((symbolP->sy_value).field_0x10 != '\x03')" (parenthesized_expression "((undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "(undefined *)paVar10->flags == PTR__bfd_std_section_00077fa0 + 0xc0" (cast_expression "(undefined *)paVar10->flags" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar10->flags" identifier -> field_identifier)) == (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal)) )) && (parenthesized_expression "((symbolP->sy_value).field_0x10 != '\x03')" ( (binary_expression "(symbolP->sy_value).field_0x10 != '\x03'" (field_expression "(symbolP->sy_value).field_0x10" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\nLAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;\n      if (bVar4 == 0) goto LAB_00040469;\n    }" { (expression_statement "bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;" (assignment_expression "bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1" identifier = (binary_expression "*(byte *)&symbolP->sy_flags >> 6 & 1" (binary_expression "*(byte *)&symbolP->sy_flags >> 6" (pointer_expression "*(byte *)&symbolP->sy_flags" * (cast_expression "(byte *)&symbolP->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&symbolP->sy_flags" & (field_expression "symbolP->sy_flags" identifier -> field_identifier)))) >> number_literal) & number_literal)) ;) (labeled_statement "LAB_00040461:\n      puVar11 = PTR__bfd_std_section_00077fa0;" statement_identifier : (expression_statement "puVar11 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar11 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;)) (if_statement "if (bVar4 == 0) goto LAB_00040469;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00040469;" goto statement_identifier ;)) }) (else_clause "else {\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }" else (compound_statement "{\n      bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;\n      if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }\n    }" { (expression_statement "bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1;" (assignment_expression "bVar4 = *(byte *)&symbolP->sy_flags >> 6 & 1" identifier = (binary_expression "*(byte *)&symbolP->sy_flags >> 6 & 1" (binary_expression "*(byte *)&symbolP->sy_flags >> 6" (pointer_expression "*(byte *)&symbolP->sy_flags" * (cast_expression "(byte *)&symbolP->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&symbolP->sy_flags" & (field_expression "symbolP->sy_flags" identifier -> field_identifier)))) >> number_literal) & number_literal)) ;) (if_statement "if ((((undefined *)paVar10->flags)[0x15] & 0x10) != 0) goto LAB_00040461;" if (parenthesized_expression "((((undefined *)paVar10->flags)[0x15] & 0x10) != 0)" ( (binary_expression "(((undefined *)paVar10->flags)[0x15] & 0x10) != 0" (parenthesized_expression "(((undefined *)paVar10->flags)[0x15] & 0x10)" ( (binary_expression "((undefined *)paVar10->flags)[0x15] & 0x10" (subscript_expression "((undefined *)paVar10->flags)[0x15]" (parenthesized_expression "((undefined *)paVar10->flags)" ( (cast_expression "(undefined *)paVar10->flags" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar10->flags" identifier -> field_identifier)) )) [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00040461;" goto statement_identifier ;)) (labeled_statement "joined_r0x00040270:\n      if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }" statement_identifier : (if_statement "if (bVar4 == 0) {\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");\n        as_bad(pcVar5,sym_name);\n        symbolP = symbol_clone(symbolP,0);\n        define_sym_at_dot(symbolP);\n        goto LAB_0004031a;\n      }" { (labeled_statement "LAB_000403bb:\n        if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }" statement_identifier : (if_statement "if (symbolP->sy_frag == frag_now) {\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }" if (parenthesized_expression "(symbolP->sy_frag == frag_now)" ( (binary_expression "symbolP->sy_frag == frag_now" (field_expression "symbolP->sy_frag" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          vVar12 = S_GET_VALUE(symbolP);\n          aVar13 = frag_now_fix();\n          if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }\n        }" { (expression_statement "vVar12 = S_GET_VALUE(symbolP);" (assignment_expression "vVar12 = S_GET_VALUE(symbolP)" identifier = (call_expression "S_GET_VALUE(symbolP)" identifier (argument_list "(symbolP)" ( identifier )))) ;) (expression_statement "aVar13 = frag_now_fix();" (assignment_expression "aVar13 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (if_statement "if (vVar12 == aVar13) {\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }" if (parenthesized_expression "(vVar12 == aVar13)" ( (binary_expression "vVar12 == aVar13" identifier == identifier) )) (compound_statement "{\n            paVar9 = (segT)symbolP->bsym;\n            if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }\n            if (now_seg == paVar9) goto LAB_0004031a;\n          }" { (expression_statement "paVar9 = (segT)symbolP->bsym;" (assignment_expression "paVar9 = (segT)symbolP->bsym" identifier = (cast_expression "(segT)symbolP->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "symbolP->bsym" identifier -> field_identifier))) ;) (if_statement "if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }\n            else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }" if (parenthesized_expression "(((uint)symbolP->sy_flags & 1) == 0)" ( (binary_expression "((uint)symbolP->sy_flags & 1) == 0" (parenthesized_expression "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004078e:\n              paVar9 = (segT)paVar9->flags;\n            }" { (labeled_statement "LAB_0004078e:\n              paVar9 = (segT)paVar9->flags;" statement_identifier : (expression_statement "paVar9 = (segT)paVar9->flags;" (assignment_expression "paVar9 = (segT)paVar9->flags" identifier = (cast_expression "(segT)paVar9->flags" ( (type_descriptor "segT" type_identifier) ) (field_expression "paVar9->flags" identifier -> field_identifier))) ;)) }) (else_clause "else if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }" else (if_statement "if (reg_section == paVar9) {\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }" if (parenthesized_expression "(reg_section == paVar9)" ( (binary_expression "reg_section == paVar9" identifier == identifier) )) (compound_statement "{\n              paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n              goto LAB_0004078e;\n            }" { (expression_statement "paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;" (assignment_expression "paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym" identifier = (field_expression "(segT)((symbolP->sy_value).X_op_symbol)->bsym" (call_expression "(segT)((symbolP->sy_value).X_op_symbol)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "((symbolP->sy_value).X_op_symbol)" ( (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier)) ;) (goto_statement "goto LAB_0004078e;" goto statement_identifier ;) })))) (if_statement "if (now_seg == paVar9) goto LAB_0004031a;" if (parenthesized_expression "(now_seg == paVar9)" ( (binary_expression "now_seg == paVar9" identifier == identifier) )) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;)) })) }))) (expression_statement "pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined");" (assignment_expression "pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined")" identifier = (cast_expression "(char *)dcgettext(0,"symbol `%s\' is already defined")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"symbol `%s\' is already defined")" identifier (argument_list "(0,"symbol `%s\' is already defined")" ( number_literal , (string_literal ""symbol `%s\' is already defined"" " string_content escape_sequence string_content ") ))))) ;) (expression_statement "as_bad(pcVar5,sym_name);" (call_expression "as_bad(pcVar5,sym_name)" identifier (argument_list "(pcVar5,sym_name)" ( identifier , identifier ))) ;) (expression_statement "symbolP = symbol_clone(symbolP,0);" (assignment_expression "symbolP = symbol_clone(symbolP,0)" identifier = (call_expression "symbol_clone(symbolP,0)" identifier (argument_list "(symbolP,0)" ( identifier , number_literal )))) ;) (expression_statement "define_sym_at_dot(symbolP);" (call_expression "define_sym_at_dot(symbolP)" identifier (argument_list "(symbolP)" ( identifier ))) ;) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) }))) })))) (expression_statement "puVar11 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar11 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;) (expression_statement "symbolP = symbol_clone(symbolP,1);" (assignment_expression "symbolP = symbol_clone(symbolP,1)" identifier = (call_expression "symbol_clone(symbolP,1)" identifier (argument_list "(symbolP,1)" ( identifier , number_literal )))) ;) (expression_statement "S_SET_VALUE(symbolP,0);" (call_expression "S_SET_VALUE(symbolP,0)" identifier (argument_list "(symbolP,0)" ( identifier , number_literal ))) ;) (expression_statement "psVar7 = symbolP;" (assignment_expression "psVar7 = symbolP" identifier = identifier) ;) (if_statement "if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n    }" if (parenthesized_expression "(((uint)symbolP->sy_flags & 1) != 0)" ( (binary_expression "((uint)symbolP->sy_flags & 1) != 0" (parenthesized_expression "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n    }" { (if_statement "if ((segT)symbolP->bsym != reg_section) goto LAB_00040469;" if (parenthesized_expression "((segT)symbolP->bsym != reg_section)" ( (binary_expression "(segT)symbolP->bsym != reg_section" (cast_expression "(segT)symbolP->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "symbolP->bsym" identifier -> field_identifier)) != identifier) )) (goto_statement "goto LAB_00040469;" goto statement_identifier ;)) (expression_statement "psVar7 = (symbolP->sy_value).X_op_symbol;" (assignment_expression "psVar7 = (symbolP->sy_value).X_op_symbol" identifier = (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "*(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf;" (assignment_expression "*(byte *)&psVar7->sy_flags = *(byte *)&psVar7->sy_flags & 0xbf" (pointer_expression "*(byte *)&psVar7->sy_flags" * (cast_expression "(byte *)&psVar7->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar7->sy_flags" & (field_expression "psVar7->sy_flags" identifier -> field_identifier)))) = (binary_expression "*(byte *)&psVar7->sy_flags & 0xbf" (pointer_expression "*(byte *)&psVar7->sy_flags" * (cast_expression "(byte *)&psVar7->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar7->sy_flags" & (field_expression "psVar7->sy_flags" identifier -> field_identifier)))) & number_literal)) ;) }) (else_clause "else {\n    if (reg_section != paVar10) {\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }\n    symbolP = (symbolP->sy_value).X_op_symbol;\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\n    paVar10 = (segT)symbolP->bsym;\n    if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;\n    if (paVar9 == paVar10) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" else (compound_statement "{\n    if (reg_section != paVar10) {\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }\n    symbolP = (symbolP->sy_value).X_op_symbol;\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 & 0xfd;\n    paVar10 = (segT)symbolP->bsym;\n    if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;\n    if (paVar9 == paVar10) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar11 = PTR__bfd_std_section_00077fa0;\n    if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" { (if_statement "if (reg_section != paVar10) {\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }" if (parenthesized_expression "(reg_section != paVar10)" ( (binary_expression "reg_section != paVar10" identifier != identifier) )) (compound_statement "{\n      if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }\n      paVar9 = now_seg;\n      (symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;\n      symbolP->bsym = (asymbol *)paVar9;\n      aVar13 = frag_now_fix();\n      (symbolP->sy_value).X_add_number = aVar13;\n      goto LAB_0004031a;\n    }" { (if_statement "if ((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))\n      {\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }" if (parenthesized_expression "((paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))))" ( (binary_expression "(paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         ((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13)))" (parenthesized_expression "(paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0))" ( (binary_expression "paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)" identifier != (call_expression "(segT)(PTR__bfd_std_section_00077fa0 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal) )))) )) && (parenthesized_expression "((((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13)))" ( (parenthesized_expression "(((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13))" ( (binary_expression "((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)) ||\n          (aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13)" (parenthesized_expression "((fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10))" ( (binary_expression "(fragS *)(symbolP->sy_value).X_op_symbol != frag_now || (now_seg != paVar10)" (binary_expression "(fragS *)(symbolP->sy_value).X_op_symbol != frag_now" (cast_expression "(fragS *)(symbolP->sy_value).X_op_symbol" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier)) != identifier) || (parenthesized_expression "(now_seg != paVar10)" ( (binary_expression "now_seg != paVar10" identifier != identifier) ))) )) || (parenthesized_expression "(aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13)" ( (comma_expression "aVar13 = (symbolP->sy_value).X_add_number, aVar14 = frag_now_fix(), aVar14 != aVar13" (assignment_expression "aVar13 = (symbolP->sy_value).X_add_number" identifier = (field_expression "(symbolP->sy_value).X_add_number" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier)) , (comma_expression "aVar14 = frag_now_fix(), aVar14 != aVar13" (assignment_expression "aVar14 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) , (binary_expression "aVar14 != aVar13" identifier != identifier))) ))) )) ))) )) (compound_statement "{\n        pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);\n        as_bad(pcVar5,sym_name);\n        return symbolP;\n      }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"symbol `%s\' is already defined",5)" identifier = (cast_expression "(char *)dcgettext(0,"symbol `%s\' is already defined",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"symbol `%s\' is already defined",5)" identifier (argument_list "(0,"symbol `%s\' is already defined",5)" ( number_literal , (string_literal ""symbol `%s\' is already defined"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar5,sym_name);" (call_expression "as_bad(pcVar5,sym_name)" identifier (argument_list "(pcVar5,sym_name)" ( identifier , identifier ))) ;) (return_statement "return symbolP;" return identifier ;) })) (expression_statement "paVar9 = now_seg;" (assignment_expression "paVar9 = now_seg" identifier = identifier) ;) (expression_statement "(symbolP->sy_value).X_op_symbol = (symbolS *)frag_now;" (assignment_expression "(symbolP->sy_value).X_op_symbol = (symbolS *)frag_now" (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(symbolS *)frag_now" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "symbolP->bsym = (asymbol *)paVar9;" (assignment_expression "symbolP->bsym = (asymbol *)paVar9" (field_expression "symbolP->bsym" identifier -> field_identifier) = (cast_expression "(asymbol *)paVar9" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "aVar13 = frag_now_fix();" (assignment_expression "aVar13 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "(symbolP->sy_value).X_add_number = aVar13;" (assignment_expression "(symbolP->sy_value).X_add_number = aVar13" (field_expression "(symbolP->sy_value).X_add_number" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "symbolP = (symbolP->sy_value).X_op_symbol;" (assignment_expression "symbolP = (symbolP->sy_value).X_op_symbol" identifier = (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1 = &(symbolP->sy_flags).field_0x1;" (assignment_expression "puVar1 = &(symbolP->sy_flags).field_0x1" identifier = (pointer_expression "&(symbolP->sy_flags).field_0x1" & (field_expression "(symbolP->sy_flags).field_0x1" (parenthesized_expression "(symbolP->sy_flags)" ( (field_expression "symbolP->sy_flags" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xfd;" (assignment_expression "*puVar1 = *puVar1 & 0xfd" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xfd" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "paVar10 = (segT)symbolP->bsym;" (assignment_expression "paVar10 = (segT)symbolP->bsym" identifier = (cast_expression "(segT)symbolP->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "symbolP->bsym" identifier -> field_identifier))) ;) (if_statement "if (((uint)symbolP->sy_flags & 1) == 0) goto LAB_00040244;" if (parenthesized_expression "(((uint)symbolP->sy_flags & 1) == 0)" ( (binary_expression "((uint)symbolP->sy_flags & 1) == 0" (parenthesized_expression "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00040244;" goto statement_identifier ;)) (if_statement "if (paVar9 == paVar10) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }" if (parenthesized_expression "(paVar9 == paVar10)" ( (binary_expression "paVar9 == paVar10" identifier == identifier) )) (compound_statement "{\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;\n      goto LAB_00040461;\n    }" { (expression_statement "psVar7 = (symbolP->sy_value).X_op_symbol;" (assignment_expression "psVar7 = (symbolP->sy_value).X_op_symbol" identifier = (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)) {\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" if (parenthesized_expression "(psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0))" ( (binary_expression "psVar7->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)" (field_expression "psVar7->bsym->section" (field_expression "psVar7->bsym" identifier -> field_identifier) -> field_identifier) == (cast_expression "(bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\n        if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }" { (if_statement "if ((psVar7->sy_value).field_0x10 == '\x03') {\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" if (parenthesized_expression "((psVar7->sy_value).field_0x10 == '\x03')" ( (binary_expression "(psVar7->sy_value).field_0x10 == '\x03'" (field_expression "(psVar7->sy_value).field_0x10" (parenthesized_expression "(psVar7->sy_value)" ( (field_expression "psVar7->sy_value" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n          bVar4 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" { (expression_statement "bVar4 = PTR__bfd_std_section_00077fa0[0xd5];" (assignment_expression "bVar4 = PTR__bfd_std_section_00077fa0[0xd5]" identifier = (subscript_expression "PTR__bfd_std_section_00077fa0[0xd5]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x00040652;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" else (compound_statement "{\n        if (reg_section != paVar9) goto LAB_000403bb;\n        bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);\njoined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" { (if_statement "if (reg_section != paVar9) goto LAB_000403bb;" if (parenthesized_expression "(reg_section != paVar9)" ( (binary_expression "reg_section != paVar9" identifier != identifier) )) (goto_statement "goto LAB_000403bb;" goto statement_identifier ;)) (expression_statement "bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1);" (assignment_expression "bVar4 = *(byte *)((int)&psVar7->bsym->section->flags + 1)" identifier = (pointer_expression "*(byte *)((int)&psVar7->bsym->section->flags + 1)" * (cast_expression "(byte *)((int)&psVar7->bsym->section->flags + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar7->bsym->section->flags + 1)" ( (binary_expression "(int)&psVar7->bsym->section->flags + 1" (cast_expression "(int)&psVar7->bsym->section->flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar7->bsym->section->flags" & (field_expression "psVar7->bsym->section->flags" (field_expression "psVar7->bsym->section" (field_expression "psVar7->bsym" identifier -> field_identifier) -> field_identifier) -> field_identifier))) + number_literal) ))))) ;) (labeled_statement "joined_r0x00040652:\n        if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }" statement_identifier : (if_statement "if ((bVar4 & 0x10) == 0) {\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }" if (parenthesized_expression "((bVar4 & 0x10) == 0)" ( (binary_expression "(bVar4 & 0x10) == 0" (parenthesized_expression "(bVar4 & 0x10)" ( (binary_expression "bVar4 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar4 = *(byte *)&psVar7->sy_flags & 0x40;\n          goto joined_r0x00040270;\n        }" { (expression_statement "bVar4 = *(byte *)&psVar7->sy_flags & 0x40;" (assignment_expression "bVar4 = *(byte *)&psVar7->sy_flags & 0x40" identifier = (binary_expression "*(byte *)&psVar7->sy_flags & 0x40" (pointer_expression "*(byte *)&psVar7->sy_flags" * (cast_expression "(byte *)&psVar7->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar7->sy_flags" & (field_expression "psVar7->sy_flags" identifier -> field_identifier)))) & number_literal)) ;) (goto_statement "goto joined_r0x00040270;" goto statement_identifier ;) }))) }))) (expression_statement "bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1;" (assignment_expression "bVar4 = *(byte *)&psVar7->sy_flags >> 6 & 1" identifier = (binary_expression "*(byte *)&psVar7->sy_flags >> 6 & 1" (binary_expression "*(byte *)&psVar7->sy_flags >> 6" (pointer_expression "*(byte *)&psVar7->sy_flags" * (cast_expression "(byte *)&psVar7->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar7->sy_flags" & (field_expression "psVar7->sy_flags" identifier -> field_identifier)))) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_00040461;" goto statement_identifier ;) })) (expression_statement "puVar11 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar11 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;) (if_statement "if (paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;" if (parenthesized_expression "(paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0))" ( (binary_expression "paVar10 != (segT)(PTR__bfd_std_section_00077fa0 + 0xc0)" identifier != (call_expression "(segT)(PTR__bfd_std_section_00077fa0 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal) )))) )) (goto_statement "goto LAB_000403bb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00040469:\n  vVar12 = S_GET_VALUE(symbolP);" statement_identifier : (expression_statement "vVar12 = S_GET_VALUE(symbolP);" (assignment_expression "vVar12 = S_GET_VALUE(symbolP)" identifier = (call_expression "S_GET_VALUE(symbolP)" identifier (argument_list "(symbolP)" ( identifier )))) ;)) (if_statement "if (vVar12 == 0) {\nLAB_00040540:\n    define_sym_at_dot(symbolP);\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "(vVar12 == 0)" ( (binary_expression "vVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00040540:\n    define_sym_at_dot(symbolP);\n    goto LAB_0004031a;\n  }" { (labeled_statement "LAB_00040540:\n    define_sym_at_dot(symbolP);" statement_identifier : (expression_statement "define_sym_at_dot(symbolP);" (call_expression "define_sym_at_dot(symbolP)" identifier (argument_list "(symbolP)" ( identifier ))) ;)) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "paVar9 = (segT)symbolP->bsym;" (assignment_expression "paVar9 = (segT)symbolP->bsym" identifier = (cast_expression "(segT)symbolP->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "symbolP->bsym" identifier -> field_identifier))) ;) (expression_statement "local_24 = (byte)((uint)symbolP->sy_flags & 1);" (assignment_expression "local_24 = (byte)((uint)symbolP->sy_flags & 1)" identifier = (call_expression "(byte)((uint)symbolP->sy_flags & 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )))) ;) (if_statement "if (((uint)symbolP->sy_flags & 1) == 0) {\n    paVar10 = (segT)paVar9->flags;\n    if (((uint)paVar9->prev & 4) != 0) goto LAB_000404a9;\n    if (paVar10 == (segT)(puVar11 + 0xc0)) {\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    else {\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    if (iVar8 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (now_seg == data_section) goto LAB_00040540;\n    if (now_seg != bss_section) {\n      if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }\n      if (now_seg != paVar9) goto LAB_000404b7;\n    }\n    vVar12 = S_GET_VALUE(symbolP);\n    aVar13 = frag_now_fix();\n    if ((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)) {\n      aVar13 = frag_now_fix();\n      S_SET_VALUE(symbolP,aVar13);\n    }\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "(((uint)symbolP->sy_flags & 1) == 0)" ( (binary_expression "((uint)symbolP->sy_flags & 1) == 0" (parenthesized_expression "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\n    paVar10 = (segT)paVar9->flags;\n    if (((uint)paVar9->prev & 4) != 0) goto LAB_000404a9;\n    if (paVar10 == (segT)(puVar11 + 0xc0)) {\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    else {\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    if (iVar8 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (now_seg == data_section) goto LAB_00040540;\n    if (now_seg != bss_section) {\n      if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }\n      if (now_seg != paVar9) goto LAB_000404b7;\n    }\n    vVar12 = S_GET_VALUE(symbolP);\n    aVar13 = frag_now_fix();\n    if ((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)) {\n      aVar13 = frag_now_fix();\n      S_SET_VALUE(symbolP,aVar13);\n    }\n    goto LAB_0004031a;\n  }" { (expression_statement "paVar10 = (segT)paVar9->flags;" (assignment_expression "paVar10 = (segT)paVar9->flags" identifier = (cast_expression "(segT)paVar9->flags" ( (type_descriptor "segT" type_identifier) ) (field_expression "paVar9->flags" identifier -> field_identifier))) ;) (if_statement "if (((uint)paVar9->prev & 4) != 0) goto LAB_000404a9;" if (parenthesized_expression "(((uint)paVar9->prev & 4) != 0)" ( (binary_expression "((uint)paVar9->prev & 4) != 0" (parenthesized_expression "((uint)paVar9->prev & 4)" ( (binary_expression "(uint)paVar9->prev & 4" (cast_expression "(uint)paVar9->prev" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar9->prev" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (if_statement "if (paVar10 == (segT)(puVar11 + 0xc0)) {\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }\n    else {\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }" if (parenthesized_expression "(paVar10 == (segT)(puVar11 + 0xc0))" ( (binary_expression "paVar10 == (segT)(puVar11 + 0xc0)" identifier == (call_expression "(segT)(puVar11 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0xc0)" ( (binary_expression "puVar11 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }" { (expression_statement "iVar8 = S_IS_EXTERNAL(symbolP);" (assignment_expression "iVar8 = S_IS_EXTERNAL(symbolP)" identifier = (call_expression "S_IS_EXTERNAL(symbolP)" identifier (argument_list "(symbolP)" ( identifier )))) ;) }) (else_clause "else {\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }" else (compound_statement "{\n      if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;\n      iVar8 = S_IS_EXTERNAL(symbolP);\n    }" { (if_statement "if ((paVar10->flags & 0x1000) == 0) goto LAB_000404a9;" if (parenthesized_expression "((paVar10->flags & 0x1000) == 0)" ( (binary_expression "(paVar10->flags & 0x1000) == 0" (parenthesized_expression "(paVar10->flags & 0x1000)" ( (binary_expression "paVar10->flags & 0x1000" (field_expression "paVar10->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (expression_statement "iVar8 = S_IS_EXTERNAL(symbolP);" (assignment_expression "iVar8 = S_IS_EXTERNAL(symbolP)" identifier = (call_expression "S_IS_EXTERNAL(symbolP)" identifier (argument_list "(symbolP)" ( identifier )))) ;) }))) (if_statement "if (iVar8 == 0) goto LAB_000404a9;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (labeled_statement "LAB_000405ac:\n    if (now_seg == data_section) goto LAB_00040540;" statement_identifier : (if_statement "if (now_seg == data_section) goto LAB_00040540;" if (parenthesized_expression "(now_seg == data_section)" ( (binary_expression "now_seg == data_section" identifier == identifier) )) (goto_statement "goto LAB_00040540;" goto statement_identifier ;))) (if_statement "if (now_seg != bss_section) {\n      if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }\n      if (now_seg != paVar9) goto LAB_000404b7;\n    }" if (parenthesized_expression "(now_seg != bss_section)" ( (binary_expression "now_seg != bss_section" identifier != identifier) )) (compound_statement "{\n      if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }\n      if (now_seg != paVar9) goto LAB_000404b7;\n    }" { (if_statement "if ((uint)local_24 == 0) {\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }\n      else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }" if (parenthesized_expression "((uint)local_24 == 0)" ( (binary_expression "(uint)local_24 == 0" (cast_expression "(uint)local_24" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) )) (compound_statement "{\nLAB_000405df:\n        paVar9 = (segT)paVar9->flags;\n      }" { (labeled_statement "LAB_000405df:\n        paVar9 = (segT)paVar9->flags;" statement_identifier : (expression_statement "paVar9 = (segT)paVar9->flags;" (assignment_expression "paVar9 = (segT)paVar9->flags" identifier = (cast_expression "(segT)paVar9->flags" ( (type_descriptor "segT" type_identifier) ) (field_expression "paVar9->flags" identifier -> field_identifier))) ;)) }) (else_clause "else if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }" else (if_statement "if (paVar9 == reg_section) {\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }" if (parenthesized_expression "(paVar9 == reg_section)" ( (binary_expression "paVar9 == reg_section" identifier == identifier) )) (compound_statement "{\n        paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;\n        goto LAB_000405df;\n      }" { (expression_statement "paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym;" (assignment_expression "paVar9 = (segT)((symbolP->sy_value).X_op_symbol)->bsym" identifier = (field_expression "(segT)((symbolP->sy_value).X_op_symbol)->bsym" (call_expression "(segT)((symbolP->sy_value).X_op_symbol)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "((symbolP->sy_value).X_op_symbol)" ( (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier)) ;) (goto_statement "goto LAB_000405df;" goto statement_identifier ;) })))) (if_statement "if (now_seg != paVar9) goto LAB_000404b7;" if (parenthesized_expression "(now_seg != paVar9)" ( (binary_expression "now_seg != paVar9" identifier != identifier) )) (goto_statement "goto LAB_000404b7;" goto statement_identifier ;)) })) (expression_statement "vVar12 = S_GET_VALUE(symbolP);" (assignment_expression "vVar12 = S_GET_VALUE(symbolP)" identifier = (call_expression "S_GET_VALUE(symbolP)" identifier (argument_list "(symbolP)" ( identifier )))) ;) (expression_statement "aVar13 = frag_now_fix();" (assignment_expression "aVar13 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)) {\n      aVar13 = frag_now_fix();\n      S_SET_VALUE(symbolP,aVar13);\n    }" if (parenthesized_expression "((uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13))" ( (binary_expression "(uint)(vVar12 >> 0x20) < (uint)((uint)vVar12 < (uint)aVar13)" (call_expression "(uint)(vVar12 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(vVar12 >> 0x20)" ( (binary_expression "vVar12 >> 0x20" identifier >> number_literal) ))) < (call_expression "(uint)((uint)vVar12 < (uint)aVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)vVar12 < (uint)aVar13)" ( (binary_expression "(uint)vVar12 < (uint)aVar13" (cast_expression "(uint)vVar12" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)aVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) )) (compound_statement "{\n      aVar13 = frag_now_fix();\n      S_SET_VALUE(symbolP,aVar13);\n    }" { (expression_statement "aVar13 = frag_now_fix();" (assignment_expression "aVar13 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "S_SET_VALUE(symbolP,aVar13);" (call_expression "S_SET_VALUE(symbolP,aVar13)" identifier (argument_list "(symbolP,aVar13)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (if_statement "if (paVar9 == reg_section) {\n    paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym;\n    paVar10 = paVar2->section;\n    if (((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))) goto LAB_000406af;\n  }\n  else {\n    paVar10 = paVar9;\n    if (paVar9 == (segT)(puVar11 + 0xc0)) {\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }\n  }" if (parenthesized_expression "(paVar9 == reg_section)" ( (binary_expression "paVar9 == reg_section" identifier == identifier) )) (compound_statement "{\n    paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym;\n    paVar10 = paVar2->section;\n    if (((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))) goto LAB_000406af;\n  }" { (expression_statement "paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym;" (assignment_expression "paVar2 = ((symbolP->sy_value).X_op_symbol)->bsym" identifier = (field_expression "((symbolP->sy_value).X_op_symbol)->bsym" (parenthesized_expression "((symbolP->sy_value).X_op_symbol)" ( (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "paVar10 = paVar2->section;" (assignment_expression "paVar10 = paVar2->section" identifier = (field_expression "paVar2->section" identifier -> field_identifier)) ;) (if_statement "if (((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))) goto LAB_000406af;" if (parenthesized_expression "(((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0))))" ( (binary_expression "((paVar2->flags & 4) == 0) &&\n       ((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))" (parenthesized_expression "((paVar2->flags & 4) == 0)" ( (binary_expression "(paVar2->flags & 4) == 0" (parenthesized_expression "(paVar2->flags & 4)" ( (binary_expression "paVar2->flags & 4" (field_expression "paVar2->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)))" ( (parenthesized_expression "(paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0))" ( (binary_expression "paVar10 == (segT)(puVar11 + 0xc0) || ((paVar10->flags & 0x1000) != 0)" (binary_expression "paVar10 == (segT)(puVar11 + 0xc0)" identifier == (call_expression "(segT)(puVar11 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0xc0)" ( (binary_expression "puVar11 + 0xc0" identifier + number_literal) )))) || (parenthesized_expression "((paVar10->flags & 0x1000) != 0)" ( (binary_expression "(paVar10->flags & 0x1000) != 0" (parenthesized_expression "(paVar10->flags & 0x1000)" ( (binary_expression "paVar10->flags & 0x1000" (field_expression "paVar10->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000406af;" goto statement_identifier ;)) }) (else_clause "else {\n    paVar10 = paVar9;\n    if (paVar9 == (segT)(puVar11 + 0xc0)) {\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }\n  }" else (compound_statement "{\n    paVar10 = paVar9;\n    if (paVar9 == (segT)(puVar11 + 0xc0)) {\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }\n  }" { (expression_statement "paVar10 = paVar9;" (assignment_expression "paVar10 = paVar9" identifier = identifier) ;) (if_statement "if (paVar9 == (segT)(puVar11 + 0xc0)) {\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }" if (parenthesized_expression "(paVar9 == (segT)(puVar11 + 0xc0))" ( (binary_expression "paVar9 == (segT)(puVar11 + 0xc0)" identifier == (call_expression "(segT)(puVar11 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0xc0)" ( (binary_expression "puVar11 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\nLAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);\n      if (iVar8 != 0) goto LAB_000405ac;\n      paVar10 = paVar9;\n      if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }\n    }" { (labeled_statement "LAB_000406af:\n      iVar8 = S_IS_EXTERNAL(symbolP);" statement_identifier : (expression_statement "iVar8 = S_IS_EXTERNAL(symbolP);" (assignment_expression "iVar8 = S_IS_EXTERNAL(symbolP)" identifier = (call_expression "S_IS_EXTERNAL(symbolP)" identifier (argument_list "(symbolP)" ( identifier )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_000405ac;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000405ac;" goto statement_identifier ;)) (expression_statement "paVar10 = paVar9;" (assignment_expression "paVar10 = paVar9" identifier = identifier) ;) (if_statement "if (paVar9 == reg_section) {\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }" if (parenthesized_expression "(paVar9 == reg_section)" ( (binary_expression "paVar9 == reg_section" identifier == identifier) )) (compound_statement "{\n        paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;\n      }" { (expression_statement "paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section;" (assignment_expression "paVar10 = ((symbolP->sy_value).X_op_symbol)->bsym->section" identifier = (field_expression "((symbolP->sy_value).X_op_symbol)->bsym->section" (field_expression "((symbolP->sy_value).X_op_symbol)->bsym" (parenthesized_expression "((symbolP->sy_value).X_op_symbol)" ( (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) ;) })) })) }))) (labeled_statement "LAB_000404a9:\n  if (bss_section == paVar10) goto LAB_000405ac;" statement_identifier : (if_statement "if (bss_section == paVar10) goto LAB_000405ac;" if (parenthesized_expression "(bss_section == paVar10)" ( (binary_expression "bss_section == paVar10" identifier == identifier) )) (goto_statement "goto LAB_000405ac;" goto statement_identifier ;))) (labeled_statement "LAB_000404b7:\n  vVar12 = S_GET_VALUE(symbolP);" statement_identifier : (expression_statement "vVar12 = S_GET_VALUE(symbolP);" (assignment_expression "vVar12 = S_GET_VALUE(symbolP)" identifier = (call_expression "S_GET_VALUE(symbolP)" identifier (argument_list "(symbolP)" ( identifier )))) ;)) (expression_statement "psVar7 = symbolP;" (assignment_expression "psVar7 = symbolP" identifier = identifier) ;) (if_statement "if (((uint)symbolP->sy_flags & 1) == 0) {\nLAB_00040632:\n    paVar9 = psVar7->bsym->section;\n  }\n  else {\n    paVar9 = (segT)symbolP->bsym;\n    if (paVar9 == reg_section) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }\n  }" if (parenthesized_expression "(((uint)symbolP->sy_flags & 1) == 0)" ( (binary_expression "((uint)symbolP->sy_flags & 1) == 0" (parenthesized_expression "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00040632:\n    paVar9 = psVar7->bsym->section;\n  }" { (labeled_statement "LAB_00040632:\n    paVar9 = psVar7->bsym->section;" statement_identifier : (expression_statement "paVar9 = psVar7->bsym->section;" (assignment_expression "paVar9 = psVar7->bsym->section" identifier = (field_expression "psVar7->bsym->section" (field_expression "psVar7->bsym" identifier -> field_identifier) -> field_identifier)) ;)) }) (else_clause "else {\n    paVar9 = (segT)symbolP->bsym;\n    if (paVar9 == reg_section) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }\n  }" else (compound_statement "{\n    paVar9 = (segT)symbolP->bsym;\n    if (paVar9 == reg_section) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }\n  }" { (expression_statement "paVar9 = (segT)symbolP->bsym;" (assignment_expression "paVar9 = (segT)symbolP->bsym" identifier = (cast_expression "(segT)symbolP->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "symbolP->bsym" identifier -> field_identifier))) ;) (if_statement "if (paVar9 == reg_section) {\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }" if (parenthesized_expression "(paVar9 == reg_section)" ( (binary_expression "paVar9 == reg_section" identifier == identifier) )) (compound_statement "{\n      psVar7 = (symbolP->sy_value).X_op_symbol;\n      goto LAB_00040632;\n    }" { (expression_statement "psVar7 = (symbolP->sy_value).X_op_symbol;" (assignment_expression "psVar7 = (symbolP->sy_value).X_op_symbol" identifier = (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_00040632;" goto statement_identifier ;) })) }))) (expression_statement "pcVar5 = paVar9->name;" (assignment_expression "pcVar5 = paVar9->name" identifier = (field_expression "paVar9->name" identifier -> field_identifier)) ;) (expression_statement "format = (char *)dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld");" (assignment_expression "format = (char *)dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld")" identifier = (cast_expression "(char *)dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld")" identifier (argument_list "(0,"symbol `%s\' is already defined as \"%s\"/%s%ld")" ( number_literal , (string_literal ""symbol `%s\' is already defined as \"%s\"/%s%ld"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "as_bad(format,sym_name,pcVar5,&DAT_00057aaa,(int)vVar12);" (call_expression "as_bad(format,sym_name,pcVar5,&DAT_00057aaa,(int)vVar12)" identifier (argument_list "(format,sym_name,pcVar5,&DAT_00057aaa,(int)vVar12)" ( identifier , identifier , identifier , (pointer_expression "&DAT_00057aaa" & identifier) , (cast_expression "(int)vVar12" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (labeled_statement "LAB_0004031a:\n  if (mri_common_symbol != (symbolS *)0x0) {\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }\n    psVar7 = mri_common_symbol;\n    (symbolP->sy_value).field_0x10 = 3;\n    (symbolP->sy_value).X_add_symbol = psVar7;\n    vVar12 = S_GET_VALUE(psVar7);\n    (symbolP->sy_value).X_add_number = vVar12;\n    symbolP->sy_frag = &zero_address_frag;\n    S_SET_SEGMENT(symbolP,expr_section);\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 | 1;\n  }" statement_identifier : (if_statement "if (mri_common_symbol != (symbolS *)0x0) {\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }\n    psVar7 = mri_common_symbol;\n    (symbolP->sy_value).field_0x10 = 3;\n    (symbolP->sy_value).X_add_symbol = psVar7;\n    vVar12 = S_GET_VALUE(psVar7);\n    (symbolP->sy_value).X_add_number = vVar12;\n    symbolP->sy_frag = &zero_address_frag;\n    S_SET_SEGMENT(symbolP,expr_section);\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 | 1;\n  }" if (parenthesized_expression "(mri_common_symbol != (symbolS *)0x0)" ( (binary_expression "mri_common_symbol != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }\n    psVar7 = mri_common_symbol;\n    (symbolP->sy_value).field_0x10 = 3;\n    (symbolP->sy_value).X_add_symbol = psVar7;\n    vVar12 = S_GET_VALUE(psVar7);\n    (symbolP->sy_value).X_add_number = vVar12;\n    symbolP->sy_frag = &zero_address_frag;\n    S_SET_SEGMENT(symbolP,expr_section);\n    puVar1 = &(symbolP->sy_flags).field_0x1;\n    *puVar1 = *puVar1 | 1;\n  }" { (if_statement "if (((uint)symbolP->sy_flags & 1) != 0) {\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }" if (parenthesized_expression "(((uint)symbolP->sy_flags & 1) != 0)" ( (binary_expression "((uint)symbolP->sy_flags & 1) != 0" (parenthesized_expression "((uint)symbolP->sy_flags & 1)" ( (binary_expression "(uint)symbolP->sy_flags & 1" (cast_expression "(uint)symbolP->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "symbolP->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }\n    }" { (if_statement "if ((segT)symbolP->bsym == reg_section) {\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }\n      else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }" if (parenthesized_expression "((segT)symbolP->bsym == reg_section)" ( (binary_expression "(segT)symbolP->bsym == reg_section" (cast_expression "(segT)symbolP->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "symbolP->bsym" identifier -> field_identifier)) == identifier) )) (compound_statement "{\n        symbolP = (symbolP->sy_value).X_op_symbol;\n      }" { (expression_statement "symbolP = (symbolP->sy_value).X_op_symbol;" (assignment_expression "symbolP = (symbolP->sy_value).X_op_symbol" identifier = (field_expression "(symbolP->sy_value).X_op_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }" else (compound_statement "{\n        symbolP = local_symbol_convert((local_symbol *)symbolP);\n      }" { (expression_statement "symbolP = local_symbol_convert((local_symbol *)symbolP);" (assignment_expression "symbolP = local_symbol_convert((local_symbol *)symbolP)" identifier = (call_expression "local_symbol_convert((local_symbol *)symbolP)" identifier (argument_list "((local_symbol *)symbolP)" ( (cast_expression "(local_symbol *)symbolP" ( (type_descriptor "local_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }))) })) (expression_statement "psVar7 = mri_common_symbol;" (assignment_expression "psVar7 = mri_common_symbol" identifier = identifier) ;) (expression_statement "(symbolP->sy_value).field_0x10 = 3;" (assignment_expression "(symbolP->sy_value).field_0x10 = 3" (field_expression "(symbolP->sy_value).field_0x10" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(symbolP->sy_value).X_add_symbol = psVar7;" (assignment_expression "(symbolP->sy_value).X_add_symbol = psVar7" (field_expression "(symbolP->sy_value).X_add_symbol" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "vVar12 = S_GET_VALUE(psVar7);" (assignment_expression "vVar12 = S_GET_VALUE(psVar7)" identifier = (call_expression "S_GET_VALUE(psVar7)" identifier (argument_list "(psVar7)" ( identifier )))) ;) (expression_statement "(symbolP->sy_value).X_add_number = vVar12;" (assignment_expression "(symbolP->sy_value).X_add_number = vVar12" (field_expression "(symbolP->sy_value).X_add_number" (parenthesized_expression "(symbolP->sy_value)" ( (field_expression "symbolP->sy_value" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "symbolP->sy_frag = &zero_address_frag;" (assignment_expression "symbolP->sy_frag = &zero_address_frag" (field_expression "symbolP->sy_frag" identifier -> field_identifier) = (pointer_expression "&zero_address_frag" & identifier)) ;) (expression_statement "S_SET_SEGMENT(symbolP,expr_section);" (call_expression "S_SET_SEGMENT(symbolP,expr_section)" identifier (argument_list "(symbolP,expr_section)" ( identifier , identifier ))) ;) (expression_statement "puVar1 = &(symbolP->sy_flags).field_0x1;" (assignment_expression "puVar1 = &(symbolP->sy_flags).field_0x1" identifier = (pointer_expression "&(symbolP->sy_flags).field_0x1" & (field_expression "(symbolP->sy_flags).field_0x1" (parenthesized_expression "(symbolP->sy_flags)" ( (field_expression "symbolP->sy_flags" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) }))) (expression_statement "alpha_define_label(symbolP);" (call_expression "alpha_define_label(symbolP)" identifier (argument_list "(symbolP)" ( identifier ))) ;) (return_statement "return symbolP;" return identifier ;) })))
(translation_unit "byte * FUN_000401a0(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}\n\n" (function_definition "byte * FUN_000401a0(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}" type_identifier (pointer_declarator "* FUN_000401a0(undefined4 param_1)" * (function_declarator "FUN_000401a0(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) )))) (compound_statement "{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "longlong lVar13;" type_identifier identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "longlong lVar15;" type_identifier identifier ;) (declaration "byte local_24;" type_identifier identifier ;) (expression_statement "pbVar3 = (byte *)FUN_00040020(param_1,0);" (assignment_expression "pbVar3 = (byte *)FUN_00040020(param_1,0)" identifier = (cast_expression "(byte *)FUN_00040020(param_1,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00040020(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))))) ;) (expression_statement "puVar10 = DAT_00081410;" (assignment_expression "puVar10 = DAT_00081410" identifier = identifier) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }" { (if_statement "if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" if (parenthesized_expression "((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0))" ( (binary_expression "(DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)" (parenthesized_expression "(DAT_00081428 == 0)" ( (binary_expression "DAT_00081428 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)" ( (comma_expression "iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0" (assignment_expression "iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1)" identifier = (call_expression "(**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))" ( (pointer_expression "**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" * (pointer_expression "*(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" * (cast_expression "(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00081544 + 4) + 0x11c)" ( (binary_expression "*(int *)(DAT_00081544 + 4) + 0x11c" (pointer_expression "*(int *)(DAT_00081544 + 4)" * (cast_expression "(int *)(DAT_00081544 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081544 + 4)" ( (binary_expression "DAT_00081544 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00081544,param_1)" ( identifier , identifier )))) , (comma_expression "iVar9 = DAT_000814a4, iVar5 != 0" (assignment_expression "iVar9 = DAT_000814a4" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }" { (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);" (assignment_expression "pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" identifier = (cast_expression "(byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" identifier (argument_list "(param_1,DAT_0008137c,uVar14,iVar9)" ( identifier , identifier , identifier , identifier ))))) ;) }) (else_clause "else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" else (compound_statement "{\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" { (expression_statement "iVar9 = DAT_000814a4;" (assignment_expression "iVar9 = DAT_000814a4" identifier = identifier) ;) (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);" (assignment_expression "pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" identifier = (cast_expression "(byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" identifier (argument_list "(param_1,DAT_0008137c,uVar14,iVar9)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "FUN_0003cac0(pbVar3);" (call_expression "FUN_0003cac0(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "puVar11 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar11 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }" { (expression_statement "pbVar3[1] = pbVar3[1] & 0xfd;" (assignment_expression "pbVar3[1] = pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = (binary_expression "pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) & number_literal)) ;) (labeled_statement "LAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" statement_identifier : (if_statement "if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" if (parenthesized_expression "(((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3))" ( (binary_expression "((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)" (parenthesized_expression "((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "(undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0" (cast_expression "(undefined *)puVar11[5]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[5]" identifier [ number_literal ])) == (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal)) )) && (parenthesized_expression "(pbVar3[0x18] != 3)" ( (binary_expression "pbVar3[0x18] != 3" (subscript_expression "pbVar3[0x18]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }" { (expression_statement "bVar2 = *pbVar3 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar3 >> 6 & 1" identifier = (binary_expression "*pbVar3 >> 6 & 1" (binary_expression "*pbVar3 >> 6" (pointer_expression "*pbVar3" * identifier) >> number_literal) & number_literal)) ;) (labeled_statement "LAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;" statement_identifier : (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;)) (if_statement "if (bVar2 == 0) goto LAB_00040469;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00040469;" goto statement_identifier ;)) }) (else_clause "else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" else (compound_statement "{\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" { (expression_statement "bVar2 = *pbVar3 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar3 >> 6 & 1" identifier = (binary_expression "*pbVar3 >> 6 & 1" (binary_expression "*pbVar3 >> 6" (pointer_expression "*pbVar3" * identifier) >> number_literal) & number_literal)) ;) (if_statement "if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;" if (parenthesized_expression "((((undefined *)puVar11[5])[0x15] & 0x10) != 0)" ( (binary_expression "(((undefined *)puVar11[5])[0x15] & 0x10) != 0" (parenthesized_expression "(((undefined *)puVar11[5])[0x15] & 0x10)" ( (binary_expression "((undefined *)puVar11[5])[0x15] & 0x10" (subscript_expression "((undefined *)puVar11[5])[0x15]" (parenthesized_expression "((undefined *)puVar11[5])" ( (cast_expression "(undefined *)puVar11[5]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[5]" identifier [ number_literal ])) )) [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00040461;" goto statement_identifier ;)) (labeled_statement "joined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" statement_identifier : (if_statement "if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" { (labeled_statement "LAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" statement_identifier : (if_statement "if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" if (parenthesized_expression "(*(int *)(pbVar3 + 0x24) == DAT_000814a4)" ( (binary_expression "*(int *)(pbVar3 + 0x24) == DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0x24)" * (cast_expression "(int *)(pbVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x24)" ( (binary_expression "pbVar3 + 0x24" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" { (expression_statement "lVar13 = FUN_0003f930();" (assignment_expression "lVar13 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar15 = FUN_0002a520();" (assignment_expression "lVar15 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }" if (parenthesized_expression "(lVar13 == lVar15)" ( (binary_expression "lVar13 == lVar15" identifier == identifier) )) (compound_statement "{\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }" { (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }" { (labeled_statement "LAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];" statement_identifier : (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;)) }) (else_clause "else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" else (if_statement "if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" if (parenthesized_expression "(DAT_00081410 == puVar10)" ( (binary_expression "DAT_00081410 == puVar10" identifier == identifier) )) (compound_statement "{\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" { (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0004078e;" goto statement_identifier ;) })))) (if_statement "if (DAT_0008137c == puVar10) goto LAB_0004031a;" if (parenthesized_expression "(DAT_0008137c == puVar10)" ( (binary_expression "DAT_0008137c == puVar10" identifier == identifier) )) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;)) })) }))) (expression_statement "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);" (assignment_expression "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5)" identifier = (call_expression "dcgettext(0,"symbol `%s\' is already defined",5)" identifier (argument_list "(0,"symbol `%s\' is already defined",5)" ( number_literal , (string_literal ""symbol `%s\' is already defined"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00031620(uVar4,param_1);" (call_expression "FUN_00031620(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (expression_statement "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);" (assignment_expression "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0)" identifier = (cast_expression "(byte *)FUN_0003fbf0(pbVar3,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003fbf0(pbVar3,0)" identifier (argument_list "(pbVar3,0)" ( identifier , number_literal ))))) ;) (expression_statement "FUN_0003e6c0();" (call_expression "FUN_0003e6c0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) }))) })))) (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);" (assignment_expression "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1)" identifier = (cast_expression "(byte *)FUN_0003fbf0(pbVar3,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003fbf0(pbVar3,1)" identifier (argument_list "(pbVar3,1)" ( identifier , number_literal ))))) ;) (expression_statement "FUN_0003db40(pbVar3,0,0);" (call_expression "FUN_0003db40(pbVar3,0,0)" identifier (argument_list "(pbVar3,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" identifier = identifier) ;) (if_statement "if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }" if (parenthesized_expression "((*pbVar3 & 1) != 0)" ( (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }" { (if_statement "if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;" if (parenthesized_expression "(*(undefined4 **)(pbVar3 + 4) != DAT_00081410)" ( (binary_expression "*(undefined4 **)(pbVar3 + 4) != DAT_00081410" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_00040469;" goto statement_identifier ;)) (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "*pbVar8 = *pbVar8 & 0xbf;" (assignment_expression "*pbVar8 = *pbVar8 & 0xbf" (pointer_expression "*pbVar8" * identifier) = (binary_expression "*pbVar8 & 0xbf" (pointer_expression "*pbVar8" * identifier) & number_literal)) ;) }) (else_clause "else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" else (compound_statement "{\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" { (if_statement "if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }" if (parenthesized_expression "(DAT_00081410 != puVar11)" ( (binary_expression "DAT_00081410 != puVar11" identifier != identifier) )) (compound_statement "{\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }" { (if_statement "if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }" if (parenthesized_expression "((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13))))" ( (binary_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))" (parenthesized_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0))" ( (binary_expression "puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal) )))) )) && (parenthesized_expression "(((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))" ( (parenthesized_expression "((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13))" ( (binary_expression "(*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)" (parenthesized_expression "(*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11))" ( (binary_expression "*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)" (binary_expression "*(int *)(pbVar3 + 0xc) != DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(DAT_0008137c != puVar11)" ( (binary_expression "DAT_0008137c != puVar11" identifier != identifier) ))) )) || (parenthesized_expression "(lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)" ( (comma_expression "lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13" (assignment_expression "lVar13 = *(longlong *)(pbVar3 + 0x10)" identifier = (pointer_expression "*(longlong *)(pbVar3 + 0x10)" * (cast_expression "(longlong *)(pbVar3 + 0x10)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) ))))) , (comma_expression "lVar15 = FUN_0002a520(), lVar15 != lVar13" (assignment_expression "lVar15 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) , (binary_expression "lVar15 != lVar13" identifier != identifier))) ))) )) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }" { (expression_statement "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);" (assignment_expression "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5)" identifier = (call_expression "dcgettext(0,"symbol `%s\' is already defined",5)" identifier (argument_list "(0,"symbol `%s\' is already defined",5)" ( number_literal , (string_literal ""symbol `%s\' is already defined"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00031620(uVar4,param_1);" (call_expression "FUN_00031620(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (return_statement "return pbVar3;" return identifier ;) })) (expression_statement "puVar10 = DAT_0008137c;" (assignment_expression "puVar10 = DAT_0008137c" identifier = identifier) ;) (expression_statement "*(int *)(pbVar3 + 0xc) = DAT_000814a4;" (assignment_expression "*(int *)(pbVar3 + 0xc) = DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(pbVar3 + 4) = puVar10;" (assignment_expression "*(undefined4 **)(pbVar3 + 4) = puVar10" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pbVar3 + 0x10) = uVar14;" (assignment_expression "*(undefined8 *)(pbVar3 + 0x10) = uVar14" (pointer_expression "*(undefined8 *)(pbVar3 + 0x10)" * (cast_expression "(undefined8 *)(pbVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "pbVar3 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar3 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pbVar3[1] = pbVar3[1] & 0xfd;" (assignment_expression "pbVar3[1] = pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = (binary_expression "pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "puVar11 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar11 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar3 & 1) == 0) goto LAB_00040244;" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00040244;" goto statement_identifier ;)) (if_statement "if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }" if (parenthesized_expression "(puVar10 == puVar11)" ( (binary_expression "puVar10 == puVar11" identifier == identifier) )) (compound_statement "{\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }" { (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" if (parenthesized_expression "(*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0" (pointer_expression "*(undefined **)(*(int *)(pbVar8 + 4) + 0x14)" * (cast_expression "(undefined **)(*(int *)(pbVar8 + 4) + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" ( (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" * (cast_expression "(int *)(pbVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) + number_literal) )))) == (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal)) )) (compound_statement "{\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }" { (if_statement "if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" if (parenthesized_expression "(pbVar8[0x18] == 3)" ( (binary_expression "pbVar8[0x18] == 3" (subscript_expression "pbVar8[0x18]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" { (expression_statement "bVar2 = PTR__bfd_std_section_00077fa0[0xd5];" (assignment_expression "bVar2 = PTR__bfd_std_section_00077fa0[0xd5]" identifier = (subscript_expression "PTR__bfd_std_section_00077fa0[0xd5]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x00040652;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" else (compound_statement "{\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" { (if_statement "if (DAT_00081410 != puVar10) goto LAB_000403bb;" if (parenthesized_expression "(DAT_00081410 != puVar10)" ( (binary_expression "DAT_00081410 != puVar10" identifier != identifier) )) (goto_statement "goto LAB_000403bb;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);" (assignment_expression "bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" identifier = (pointer_expression "*(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" * (cast_expression "(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" ( (binary_expression "*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15" (pointer_expression "*(int *)(*(int *)(pbVar8 + 4) + 0x14)" * (cast_expression "(int *)(*(int *)(pbVar8 + 4) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" ( (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" * (cast_expression "(int *)(pbVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "joined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" statement_identifier : (if_statement "if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" if (parenthesized_expression "((bVar2 & 0x10) == 0)" ( (binary_expression "(bVar2 & 0x10) == 0" (parenthesized_expression "(bVar2 & 0x10)" ( (binary_expression "bVar2 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" { (expression_statement "bVar2 = *pbVar8 & 0x40;" (assignment_expression "bVar2 = *pbVar8 & 0x40" identifier = (binary_expression "*pbVar8 & 0x40" (pointer_expression "*pbVar8" * identifier) & number_literal)) ;) (goto_statement "goto joined_r0x00040270;" goto statement_identifier ;) }))) }))) (expression_statement "bVar2 = *pbVar8 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar8 >> 6 & 1" identifier = (binary_expression "*pbVar8 >> 6 & 1" (binary_expression "*pbVar8 >> 6" (pointer_expression "*pbVar8" * identifier) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_00040461;" goto statement_identifier ;) })) (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" identifier = identifier) ;) (if_statement "if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;" if (parenthesized_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0))" ( (binary_expression "puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" identifier + number_literal) )))) )) (goto_statement "goto LAB_000403bb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00040469:\n  lVar13 = FUN_0003f930();" statement_identifier : (expression_statement "lVar13 = FUN_0003f930();" (assignment_expression "lVar13 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }" { (labeled_statement "LAB_00040540:\n    FUN_0003e6c0();" statement_identifier : (expression_statement "FUN_0003e6c0();" (call_expression "FUN_0003e6c0()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_24 = *pbVar3 & 1;" (assignment_expression "local_24 = *pbVar3 & 1" identifier = (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal)) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }" { (expression_statement "puVar11 = (undefined4 *)puVar10[5];" (assignment_expression "puVar11 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;" if (parenthesized_expression "((*(byte *)(puVar10 + 4) & 4) != 0)" ( (binary_expression "(*(byte *)(puVar10 + 4) & 4) != 0" (parenthesized_expression "(*(byte *)(puVar10 + 4) & 4)" ( (binary_expression "*(byte *)(puVar10 + 4) & 4" (pointer_expression "*(byte *)(puVar10 + 4)" * (cast_expression "(byte *)(puVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (if_statement "if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" if (parenthesized_expression "(puVar11 == (undefined4 *)(puVar12 + 0xc0))" ( (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0)" identifier == (cast_expression "(undefined4 *)(puVar12 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc0)" ( (binary_expression "puVar12 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" { (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" identifier = (call_expression "FUN_0003dc20(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier )))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" else (compound_statement "{\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" { (if_statement "if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;" if (parenthesized_expression "((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10)" ( (binary_expression "*(byte *)((int)puVar11 + 0x15) & 0x10" (pointer_expression "*(byte *)((int)puVar11 + 0x15)" * (cast_expression "(byte *)((int)puVar11 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x15)" ( (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" identifier = (call_expression "FUN_0003dc20(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier )))) ;) }))) (if_statement "if (iVar9 == 0) goto LAB_000404a9;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000404a9;" goto statement_identifier ;)) (labeled_statement "LAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;" statement_identifier : (if_statement "if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;" if (parenthesized_expression "(DAT_0008137c == DAT_000813f0)" ( (binary_expression "DAT_0008137c == DAT_000813f0" identifier == identifier) )) (goto_statement "goto LAB_00040540;" goto statement_identifier ;))) (if_statement "if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }" if (parenthesized_expression "(DAT_0008137c != DAT_0008136c)" ( (binary_expression "DAT_0008137c != DAT_0008136c" identifier != identifier) )) (compound_statement "{\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }" { (if_statement "if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }" { (labeled_statement "LAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];" statement_identifier : (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" identifier = (cast_expression "(undefined4 *)puVar10[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[5]" identifier [ number_literal ]))) ;)) }) (else_clause "else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" else (if_statement "if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" { (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000405df;" goto statement_identifier ;) })))) (if_statement "if (DAT_0008137c != puVar10) goto LAB_000404b7;" if (parenthesized_expression "(DAT_0008137c != puVar10)" ( (binary_expression "DAT_0008137c != puVar10" identifier != identifier) )) (goto_statement "goto LAB_000404b7;" goto statement_identifier ;)) })) (expression_statement "uVar14 = FUN_0003f930();" (assignment_expression "uVar14 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = FUN_0002a520();" (assignment_expression "uVar7 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }" if (parenthesized_expression "((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7))" ( (binary_expression "(uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)" (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar14 >> 0x20)" ( (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (call_expression "(uint)((uint)uVar14 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar14 < uVar7)" ( (binary_expression "(uint)uVar14 < uVar7" (cast_expression "(uint)uVar14" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) )) (compound_statement "{\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }" { (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0003db40(pbVar3,uVar14);" (call_expression "FUN_0003db40(pbVar3,uVar14)" identifier (argument_list "(pbVar3,uVar14)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_0004031a;" goto statement_identifier ;) })) (if_statement "if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }" { (expression_statement "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);" (assignment_expression "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" * (cast_expression "(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;" if (parenthesized_expression "(((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        )))" ( (binary_expression "((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))" (parenthesized_expression "((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0)" ( (binary_expression "(*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0" (parenthesized_expression "(*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4)" ( (binary_expression "*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4" (pointer_expression "*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" * (cast_expression "(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" ( (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))" ( (parenthesized_expression "(puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        )" ( (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)" (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0)" identifier == (cast_expression "(undefined4 *)(puVar12 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc0)" ( (binary_expression "puVar12 + 0xc0" identifier + number_literal) )))) || (parenthesized_expression "((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10)" ( (binary_expression "*(byte *)((int)puVar11 + 0x15) & 0x10" (pointer_expression "*(byte *)((int)puVar11 + 0x15)" * (cast_expression "(byte *)((int)puVar11 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x15)" ( (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000406af;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" else (compound_statement "{\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" { (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (if_statement "if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }" if (parenthesized_expression "(puVar10 == (undefined4 *)(puVar12 + 0xc0))" ( (binary_expression "puVar10 == (undefined4 *)(puVar12 + 0xc0)" identifier == (cast_expression "(undefined4 *)(puVar12 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc0)" ( (binary_expression "puVar12 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }" { (labeled_statement "LAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);" statement_identifier : (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" identifier = (call_expression "FUN_0003dc20(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier )))) ;)) (if_statement "if (iVar9 != 0) goto LAB_000405ac;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000405ac;" goto statement_identifier ;)) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (if_statement "if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }" { (expression_statement "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);" (assignment_expression "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" * (cast_expression "(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" ( (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" ( (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) })) })) }))) (labeled_statement "LAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;" statement_identifier : (if_statement "if (DAT_0008136c == puVar11) goto LAB_000405ac;" if (parenthesized_expression "(DAT_0008136c == puVar11)" ( (binary_expression "DAT_0008136c == puVar11" identifier == identifier) )) (goto_statement "goto LAB_000405ac;" goto statement_identifier ;))) (labeled_statement "LAB_000404b7:\n  uVar4 = FUN_0003f930();" statement_identifier : (expression_statement "uVar4 = FUN_0003f930();" (assignment_expression "uVar4 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" identifier = identifier) ;) (if_statement "if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" if (parenthesized_expression "((*pbVar3 & 1) == 0)" ( (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }" { (labeled_statement "LAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);" statement_identifier : (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" * (cast_expression "(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" ( (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" * (cast_expression "(int *)(pbVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 4)" ( (binary_expression "pbVar8 + 4" identifier + number_literal) )))) + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" else (compound_statement "{\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" { (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" identifier = (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }" if (parenthesized_expression "(puVar10 == DAT_00081410)" ( (binary_expression "puVar10 == DAT_00081410" identifier == identifier) )) (compound_statement "{\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }" { (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00040632;" goto statement_identifier ;) })) }))) (expression_statement "uVar1 = *puVar10;" (assignment_expression "uVar1 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);" (assignment_expression "uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" identifier = (call_expression "dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" identifier (argument_list "(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" ( number_literal , (string_literal ""symbol `%s\' is already defined as \"%s\"/%s%ld"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);" (call_expression "FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4)" identifier (argument_list "(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4)" ( identifier , identifier , identifier , (pointer_expression "&DAT_00057aaa" & identifier) , identifier ))) ;) (labeled_statement "LAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" statement_identifier : (if_statement "if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" if (parenthesized_expression "(DAT_00081560 != 0)" ( (binary_expression "DAT_00081560 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" { (if_statement "if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }" if (parenthesized_expression "((*pbVar3 & 1) != 0)" ( (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" ( (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }" { (if_statement "if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }" if (parenthesized_expression "(*(undefined4 **)(pbVar3 + 4) == DAT_00081410)" ( (binary_expression "*(undefined4 **)(pbVar3 + 4) == DAT_00081410" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" * (cast_expression "(undefined4 **)(pbVar3 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }" { (expression_statement "pbVar3 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar3 = *(byte **)(pbVar3 + 0xc)" identifier = (pointer_expression "*(byte **)(pbVar3 + 0xc)" * (cast_expression "(byte **)(pbVar3 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }" else (compound_statement "{\n        pbVar3 = (byte *)FUN_0003e490();\n      }" { (expression_statement "pbVar3 = (byte *)FUN_0003e490();" (assignment_expression "pbVar3 = (byte *)FUN_0003e490()" identifier = (cast_expression "(byte *)FUN_0003e490()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003e490()" identifier (argument_list "()" ( ))))) ;) }))) })) (expression_statement "iVar9 = DAT_00081560;" (assignment_expression "iVar9 = DAT_00081560" identifier = identifier) ;) (expression_statement "pbVar3[0x18] = 3;" (assignment_expression "pbVar3[0x18] = 3" (subscript_expression "pbVar3[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(pbVar3 + 8) = iVar9;" (assignment_expression "*(int *)(pbVar3 + 8) = iVar9" (pointer_expression "*(int *)(pbVar3 + 8)" * (cast_expression "(int *)(pbVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 8)" ( (binary_expression "pbVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = FUN_0003f930();" (assignment_expression "uVar14 = FUN_0003f930()" identifier = (call_expression "FUN_0003f930()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pbVar3 + 0x10) = uVar14;" (assignment_expression "*(undefined8 *)(pbVar3 + 0x10) = uVar14" (pointer_expression "*(undefined8 *)(pbVar3 + 0x10)" * (cast_expression "(undefined8 *)(pbVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;" (assignment_expression "*(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0" (pointer_expression "*(undefined4 **)(pbVar3 + 0x24)" * (cast_expression "(undefined4 **)(pbVar3 + 0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar3 + 0x24)" ( (binary_expression "pbVar3 + 0x24" identifier + number_literal) )))) = (pointer_expression "&DAT_000813a0" & identifier)) ;) (expression_statement "FUN_0003e210(pbVar3,DAT_00081360);" (call_expression "FUN_0003e210(pbVar3,DAT_00081360)" identifier (argument_list "(pbVar3,DAT_00081360)" ( identifier , identifier ))) ;) (expression_statement "pbVar3[1] = pbVar3[1] | 1;" (assignment_expression "pbVar3[1] = pbVar3[1] | 1" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = (binary_expression "pbVar3[1] | 1" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) | number_literal)) ;) }))) (expression_statement "FUN_0004e050(pbVar3);" (call_expression "FUN_0004e050(pbVar3)" identifier (argument_list "(pbVar3)" ( identifier ))) ;) (return_statement "return pbVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) )))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = 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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) >> LIT) & LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) }))) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) (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 (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != IDENT))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (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 (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & 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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (binary_expression IDENT + LIT)) )) (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 ])) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) & LIT)) ;) (goto_statement goto statement_identifier ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) >> LIT) & LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (goto_statement goto statement_identifier ;) })) (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 (pointer_expression * IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) })) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;)) }) (else_clause else (compound_statement { (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 == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 IDENT (argument_list ( ))))) ;) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "byte * FUN_000401a0(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}" (type_identifier "byte") (pointer_declarator "* FUN_000401a0(undefined4 param_1)" (* "*") (function_declarator "FUN_000401a0(undefined4 param_1)" (identifier "FUN_000401a0") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")")))) (compound_statement "{\n  undefined4 uVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  longlong lVar15;\n  byte local_24;\n  \n  pbVar3 = (byte *)FUN_00040020(param_1,0);\n  puVar10 = DAT_00081410;\n  if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }\n  puVar11 = *(undefined4 **)(pbVar3 + 4);\n  if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }\nLAB_00040469:\n  lVar13 = FUN_0003f930();\n  if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }\n  puVar10 = *(undefined4 **)(pbVar3 + 4);\n  local_24 = *pbVar3 & 1;\n  if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }\n  if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }\nLAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;\nLAB_000404b7:\n  uVar4 = FUN_0003f930();\n  pbVar8 = pbVar3;\n  if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }\n  uVar1 = *puVar10;\n  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);\n  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);\nLAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }\n  FUN_0004e050(pbVar3);\n  return pbVar3;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "longlong lVar13;" (type_identifier "longlong") (identifier "lVar13") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "longlong lVar15;" (type_identifier "longlong") (identifier "lVar15") (; ";")) (declaration "byte local_24;" (type_identifier "byte") (identifier "local_24") (; ";")) (expression_statement "pbVar3 = (byte *)FUN_00040020(param_1,0);" (assignment_expression "pbVar3 = (byte *)FUN_00040020(param_1,0)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)FUN_00040020(param_1,0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00040020(param_1,0)" (identifier "FUN_00040020") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar10 = DAT_00081410;" (assignment_expression "puVar10 = DAT_00081410" (identifier "puVar10") (= "=") (identifier "DAT_00081410")) (; ";")) (if_statement "if (pbVar3 == (byte *)0x0) {\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0x0)" (( "(") (binary_expression "pbVar3 == (byte *)0x0" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }\n    goto LAB_0004031a;\n  }" ({ "{") (if_statement "if ((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)) {\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }\n    else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" (if "if") (parenthesized_expression "((DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0))" (( "(") (binary_expression "(DAT_00081428 == 0) &&\n       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)" (parenthesized_expression "(DAT_00081428 == 0)" (( "(") (binary_expression "DAT_00081428 == 0" (identifier "DAT_00081428") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0)" (( "(") (comma_expression "iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),\n       iVar9 = DAT_000814a4, iVar5 != 0" (assignment_expression "iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00081544 + 4) + 0x11c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00081544 + 4) + 0x11c)" (( "(") (binary_expression "*(int *)(DAT_00081544 + 4) + 0x11c" (pointer_expression "*(int *)(DAT_00081544 + 4)" (* "*") (cast_expression "(int *)(DAT_00081544 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00081544 + 4)" (( "(") (binary_expression "DAT_00081544 + 4" (identifier "DAT_00081544") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x11c")) () ")"))))) () ")")) (argument_list "(DAT_00081544,param_1)" (( "(") (identifier "DAT_00081544") (, ",") (identifier "param_1") () ")")))) (, ",") (comma_expression "iVar9 = DAT_000814a4, iVar5 != 0" (assignment_expression "iVar9 = DAT_000814a4" (identifier "iVar9") (= "=") (identifier "DAT_000814a4")) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);\n    }" ({ "{") (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" (identifier "uVar14") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);" (assignment_expression "pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9)" (identifier "FUN_0003c9b0") (argument_list "(param_1,DAT_0008137c,uVar14,iVar9)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_0008137c") (, ",") (identifier "uVar14") (, ",") (identifier "iVar9") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" (else "else") (compound_statement "{\n      iVar9 = DAT_000814a4;\n      uVar14 = FUN_0002a520();\n      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);\n      FUN_0003cac0(pbVar3);\n    }" ({ "{") (expression_statement "iVar9 = DAT_000814a4;" (assignment_expression "iVar9 = DAT_000814a4" (identifier "iVar9") (= "=") (identifier "DAT_000814a4")) (; ";")) (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" (identifier "uVar14") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);" (assignment_expression "pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9)" (identifier "FUN_0003e420") (argument_list "(param_1,DAT_0008137c,uVar14,iVar9)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_0008137c") (, ",") (identifier "uVar14") (, ",") (identifier "iVar9") () ")"))))) (; ";")) (expression_statement "FUN_0003cac0(pbVar3);" (call_expression "FUN_0003cac0(pbVar3)" (identifier "FUN_0003cac0") (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0004031a;" (goto "goto") (statement_identifier "LAB_0004031a") (; ";")) (} "}"))) (expression_statement "puVar11 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar11 = *(undefined4 **)(pbVar3 + 4)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*pbVar3 & 1) == 0) {\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }\n  else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" (if "if") (parenthesized_expression "((*pbVar3 & 1) == 0)" (( "(") (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar3[1] = pbVar3[1] & 0xfd;\nLAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);\n    FUN_0003db40(pbVar3,0,0);\n    pbVar8 = pbVar3;\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }\n    *pbVar8 = *pbVar8 & 0xbf;\n  }" ({ "{") (expression_statement "pbVar3[1] = pbVar3[1] & 0xfd;" (assignment_expression "pbVar3[1] = pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xfd"))) (; ";")) (labeled_statement "LAB_00040244:\n    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" (statement_identifier "LAB_00040244") (: ":") (if_statement "if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }\n    else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" (if "if") (parenthesized_expression "(((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3))" (( "(") (binary_expression "((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)" (parenthesized_expression "((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0)" (( "(") (binary_expression "(undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0" (cast_expression "(undefined *)puVar11[5]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]"))) (== "==") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xc0"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar3[0x18] != 3)" (( "(") (binary_expression "pbVar3[0x18] != 3" (subscript_expression "pbVar3[0x18]" (identifier "pbVar3") ([ "[") (number_literal "0x18") (] "]")) (!= "!=") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n      bVar2 = *pbVar3 >> 6 & 1;\nLAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;\n      if (bVar2 == 0) goto LAB_00040469;\n    }" ({ "{") (expression_statement "bVar2 = *pbVar3 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar3 >> 6 & 1" (identifier "bVar2") (= "=") (binary_expression "*pbVar3 >> 6 & 1" (binary_expression "*pbVar3 >> 6" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (>> ">>") (number_literal "6")) (& "&") (number_literal "1"))) (; ";")) (labeled_statement "LAB_00040461:\n      puVar12 = PTR__bfd_std_section_00077fa0;" (statement_identifier "LAB_00040461") (: ":") (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" (identifier "puVar12") (= "=") (identifier "PTR__bfd_std_section_00077fa0")) (; ";"))) (if_statement "if (bVar2 == 0) goto LAB_00040469;" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00040469;" (goto "goto") (statement_identifier "LAB_00040469") (; ";"))) (} "}")) (else_clause "else {\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" (else "else") (compound_statement "{\n      bVar2 = *pbVar3 >> 6 & 1;\n      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;\njoined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }\n    }" ({ "{") (expression_statement "bVar2 = *pbVar3 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar3 >> 6 & 1" (identifier "bVar2") (= "=") (binary_expression "*pbVar3 >> 6 & 1" (binary_expression "*pbVar3 >> 6" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (>> ">>") (number_literal "6")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;" (if "if") (parenthesized_expression "((((undefined *)puVar11[5])[0x15] & 0x10) != 0)" (( "(") (binary_expression "(((undefined *)puVar11[5])[0x15] & 0x10) != 0" (parenthesized_expression "(((undefined *)puVar11[5])[0x15] & 0x10)" (( "(") (binary_expression "((undefined *)puVar11[5])[0x15] & 0x10" (subscript_expression "((undefined *)puVar11[5])[0x15]" (parenthesized_expression "((undefined *)puVar11[5])" (( "(") (cast_expression "(undefined *)puVar11[5]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]"))) () ")")) ([ "[") (number_literal "0x15") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00040461;" (goto "goto") (statement_identifier "LAB_00040461") (; ";"))) (labeled_statement "joined_r0x00040270:\n      if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" (statement_identifier "joined_r0x00040270") (: ":") (if_statement "if (bVar2 == 0) {\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);\n        FUN_0003e6c0();\n        goto LAB_0004031a;\n      }" ({ "{") (labeled_statement "LAB_000403bb:\n        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" (statement_identifier "LAB_000403bb") (: ":") (if_statement "if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(pbVar3 + 0x24) == DAT_000814a4)" (( "(") (binary_expression "*(int *)(pbVar3 + 0x24) == DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0x24)" (* "*") (cast_expression "(int *)(pbVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0x24)" (( "(") (binary_expression "pbVar3 + 0x24" (identifier "pbVar3") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (identifier "DAT_000814a4")) () ")")) (compound_statement "{\n          lVar13 = FUN_0003f930();\n          lVar15 = FUN_0002a520();\n          if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }\n        }" ({ "{") (expression_statement "lVar13 = FUN_0003f930();" (assignment_expression "lVar13 = FUN_0003f930()" (identifier "lVar13") (= "=") (call_expression "FUN_0003f930()" (identifier "FUN_0003f930") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar15 = FUN_0002a520();" (assignment_expression "lVar15 = FUN_0002a520()" (identifier "lVar15") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar13 == lVar15) {\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }" (if "if") (parenthesized_expression "(lVar13 == lVar15)" (( "(") (binary_expression "lVar13 == lVar15" (identifier "lVar13") (== "==") (identifier "lVar15")) () ")")) (compound_statement "{\n            puVar10 = *(undefined4 **)(pbVar3 + 4);\n            if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }\n            if (DAT_0008137c == puVar10) goto LAB_0004031a;\n          }" ({ "{") (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*pbVar3 & 1) == 0) {\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }\n            else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" (if "if") (parenthesized_expression "((*pbVar3 & 1) == 0)" (( "(") (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];\n            }" ({ "{") (labeled_statement "LAB_0004078e:\n              puVar10 = (undefined4 *)puVar10[5];" (statement_identifier "LAB_0004078e") (: ":") (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)puVar10[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")))) (; ";"))) (} "}")) (else_clause "else if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" (else "else") (if_statement "if (DAT_00081410 == puVar10) {\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" (if "if") (parenthesized_expression "(DAT_00081410 == puVar10)" (( "(") (binary_expression "DAT_00081410 == puVar10" (identifier "DAT_00081410") (== "==") (identifier "puVar10")) () ")")) (compound_statement "{\n              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n              goto LAB_0004078e;\n            }" ({ "{") (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0004078e;" (goto "goto") (statement_identifier "LAB_0004078e") (; ";")) (} "}"))))) (if_statement "if (DAT_0008137c == puVar10) goto LAB_0004031a;" (if "if") (parenthesized_expression "(DAT_0008137c == puVar10)" (( "(") (binary_expression "DAT_0008137c == puVar10" (identifier "DAT_0008137c") (== "==") (identifier "puVar10")) () ")")) (goto_statement "goto LAB_0004031a;" (goto "goto") (statement_identifier "LAB_0004031a") (; ";"))) (} "}"))) (} "}")))) (expression_statement "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);" (assignment_expression "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"symbol `%s\' is already defined",5)" (identifier "dcgettext") (argument_list "(0,"symbol `%s\' is already defined",5)" (( "(") (number_literal "0") (, ",") (string_literal ""symbol `%s\' is already defined"" (" """) (string_content "symbol `%s") (escape_sequence "\'") (string_content " is already defined") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031620(uVar4,param_1);" (call_expression "FUN_00031620(uVar4,param_1)" (identifier "FUN_00031620") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);" (assignment_expression "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)FUN_0003fbf0(pbVar3,0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003fbf0(pbVar3,0)" (identifier "FUN_0003fbf0") (argument_list "(pbVar3,0)" (( "(") (identifier "pbVar3") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "FUN_0003e6c0();" (call_expression "FUN_0003e6c0()" (identifier "FUN_0003e6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0004031a;" (goto "goto") (statement_identifier "LAB_0004031a") (; ";")) (} "}")))) (} "}"))))) (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" (identifier "puVar12") (= "=") (identifier "PTR__bfd_std_section_00077fa0")) (; ";")) (expression_statement "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);" (assignment_expression "pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)FUN_0003fbf0(pbVar3,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003fbf0(pbVar3,1)" (identifier "FUN_0003fbf0") (argument_list "(pbVar3,1)" (( "(") (identifier "pbVar3") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "FUN_0003db40(pbVar3,0,0);" (call_expression "FUN_0003db40(pbVar3,0,0)" (identifier "FUN_0003db40") (argument_list "(pbVar3,0,0)" (( "(") (identifier "pbVar3") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" (identifier "pbVar8") (= "=") (identifier "pbVar3")) (; ";")) (if_statement "if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }" (if "if") (parenthesized_expression "((*pbVar3 & 1) != 0)" (( "(") (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n    }" ({ "{") (if_statement "if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;" (if "if") (parenthesized_expression "(*(undefined4 **)(pbVar3 + 4) != DAT_00081410)" (( "(") (binary_expression "*(undefined4 **)(pbVar3 + 4) != DAT_00081410" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "DAT_00081410")) () ")")) (goto_statement "goto LAB_00040469;" (goto "goto") (statement_identifier "LAB_00040469") (; ";"))) (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" (identifier "pbVar8") (= "=") (pointer_expression "*(byte **)(pbVar3 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar3 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*pbVar8 = *pbVar8 & 0xbf;" (assignment_expression "*pbVar8 = *pbVar8 & 0xbf" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (= "=") (binary_expression "*pbVar8 & 0xbf" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (& "&") (number_literal "0xbf"))) (; ";")) (} "}")) (else_clause "else {\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" (else "else") (compound_statement "{\n    if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }\n    pbVar3 = *(byte **)(pbVar3 + 0xc);\n    pbVar3[1] = pbVar3[1] & 0xfd;\n    puVar11 = *(undefined4 **)(pbVar3 + 4);\n    if ((*pbVar3 & 1) == 0) goto LAB_00040244;\n    if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }\n    puVar12 = PTR__bfd_std_section_00077fa0;\n    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;\n  }" ({ "{") (if_statement "if (DAT_00081410 != puVar11) {\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }" (if "if") (parenthesized_expression "(DAT_00081410 != puVar11)" (( "(") (binary_expression "DAT_00081410 != puVar11" (identifier "DAT_00081410") (!= "!=") (identifier "puVar11")) () ")")) (compound_statement "{\n      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }\n      puVar10 = DAT_0008137c;\n      *(int *)(pbVar3 + 0xc) = DAT_000814a4;\n      *(undefined4 **)(pbVar3 + 4) = puVar10;\n      uVar14 = FUN_0002a520();\n      *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n      goto LAB_0004031a;\n    }" ({ "{") (if_statement "if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }" (if "if") (parenthesized_expression "((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13))))" (( "(") (binary_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&\n         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))" (parenthesized_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0))" (( "(") (binary_expression "puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" (identifier "puVar11") (!= "!=") (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xc0)" (( "(") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xc0")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))" (( "(") (parenthesized_expression "((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13))" (( "(") (binary_expression "(*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||\n          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)" (parenthesized_expression "(*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11))" (( "(") (binary_expression "*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)" (binary_expression "*(int *)(pbVar3 + 0xc) != DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (identifier "DAT_000814a4")) (|| "||") (parenthesized_expression "(DAT_0008137c != puVar11)" (( "(") (binary_expression "DAT_0008137c != puVar11" (identifier "DAT_0008137c") (!= "!=") (identifier "puVar11")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)" (( "(") (comma_expression "lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13" (assignment_expression "lVar13 = *(longlong *)(pbVar3 + 0x10)" (identifier "lVar13") (= "=") (pointer_expression "*(longlong *)(pbVar3 + 0x10)" (* "*") (cast_expression "(longlong *)(pbVar3 + 0x10)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0x10)" (( "(") (binary_expression "pbVar3 + 0x10" (identifier "pbVar3") (+ "+") (number_literal "0x10")) () ")"))))) (, ",") (comma_expression "lVar15 = FUN_0002a520(), lVar15 != lVar13" (assignment_expression "lVar15 = FUN_0002a520()" (identifier "lVar15") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "lVar15 != lVar13" (identifier "lVar15") (!= "!=") (identifier "lVar13")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);\n        FUN_00031620(uVar4,param_1);\n        return pbVar3;\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);" (assignment_expression "uVar4 = dcgettext(0,"symbol `%s\' is already defined",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"symbol `%s\' is already defined",5)" (identifier "dcgettext") (argument_list "(0,"symbol `%s\' is already defined",5)" (( "(") (number_literal "0") (, ",") (string_literal ""symbol `%s\' is already defined"" (" """) (string_content "symbol `%s") (escape_sequence "\'") (string_content " is already defined") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031620(uVar4,param_1);" (call_expression "FUN_00031620(uVar4,param_1)" (identifier "FUN_00031620") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return pbVar3;" (return "return") (identifier "pbVar3") (; ";")) (} "}"))) (expression_statement "puVar10 = DAT_0008137c;" (assignment_expression "puVar10 = DAT_0008137c" (identifier "puVar10") (= "=") (identifier "DAT_0008137c")) (; ";")) (expression_statement "*(int *)(pbVar3 + 0xc) = DAT_000814a4;" (assignment_expression "*(int *)(pbVar3 + 0xc) = DAT_000814a4" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "DAT_000814a4")) (; ";")) (expression_statement "*(undefined4 **)(pbVar3 + 4) = puVar10;" (assignment_expression "*(undefined4 **)(pbVar3 + 4) = puVar10" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" (identifier "uVar14") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pbVar3 + 0x10) = uVar14;" (assignment_expression "*(undefined8 *)(pbVar3 + 0x10) = uVar14" (pointer_expression "*(undefined8 *)(pbVar3 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pbVar3 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0x10)" (( "(") (binary_expression "pbVar3 + 0x10" (identifier "pbVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (goto_statement "goto LAB_0004031a;" (goto "goto") (statement_identifier "LAB_0004031a") (; ";")) (} "}"))) (expression_statement "pbVar3 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar3 = *(byte **)(pbVar3 + 0xc)" (identifier "pbVar3") (= "=") (pointer_expression "*(byte **)(pbVar3 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar3 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pbVar3[1] = pbVar3[1] & 0xfd;" (assignment_expression "pbVar3[1] = pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "pbVar3[1] & 0xfd" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xfd"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar11 = *(undefined4 **)(pbVar3 + 4)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*pbVar3 & 1) == 0) goto LAB_00040244;" (if "if") (parenthesized_expression "((*pbVar3 & 1) == 0)" (( "(") (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00040244;" (goto "goto") (statement_identifier "LAB_00040244") (; ";"))) (if_statement "if (puVar10 == puVar11) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }" (if "if") (parenthesized_expression "(puVar10 == puVar11)" (( "(") (binary_expression "puVar10 == puVar11" (identifier "puVar10") (== "==") (identifier "puVar11")) () ")")) (compound_statement "{\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }\n      bVar2 = *pbVar8 >> 6 & 1;\n      goto LAB_00040461;\n    }" ({ "{") (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" (identifier "pbVar8") (= "=") (pointer_expression "*(byte **)(pbVar3 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar3 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }\n      else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" (if "if") (parenthesized_expression "(*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0)" (( "(") (binary_expression "*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0" (pointer_expression "*(undefined **)(*(int *)(pbVar8 + 4) + 0x14)" (* "*") (cast_expression "(undefined **)(*(int *)(pbVar8 + 4) + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" (( "(") (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" (* "*") (cast_expression "(int *)(pbVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + 4)" (( "(") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xc0"))) () ")")) (compound_statement "{\n        if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }\n      }" ({ "{") (if_statement "if (pbVar8[0x18] == 3) {\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" (if "if") (parenthesized_expression "(pbVar8[0x18] == 3)" (( "(") (binary_expression "pbVar8[0x18] == 3" (subscript_expression "pbVar8[0x18]" (identifier "pbVar8") ([ "[") (number_literal "0x18") (] "]")) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];\n          goto joined_r0x00040652;\n        }" ({ "{") (expression_statement "bVar2 = PTR__bfd_std_section_00077fa0[0xd5];" (assignment_expression "bVar2 = PTR__bfd_std_section_00077fa0[0xd5]" (identifier "bVar2") (= "=") (subscript_expression "PTR__bfd_std_section_00077fa0[0xd5]" (identifier "PTR__bfd_std_section_00077fa0") ([ "[") (number_literal "0xd5") (] "]"))) (; ";")) (goto_statement "goto joined_r0x00040652;" (goto "goto") (statement_identifier "joined_r0x00040652") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" (else "else") (compound_statement "{\n        if (DAT_00081410 != puVar10) goto LAB_000403bb;\n        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);\njoined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }\n      }" ({ "{") (if_statement "if (DAT_00081410 != puVar10) goto LAB_000403bb;" (if "if") (parenthesized_expression "(DAT_00081410 != puVar10)" (( "(") (binary_expression "DAT_00081410 != puVar10" (identifier "DAT_00081410") (!= "!=") (identifier "puVar10")) () ")")) (goto_statement "goto LAB_000403bb;" (goto "goto") (statement_identifier "LAB_000403bb") (; ";"))) (expression_statement "bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);" (assignment_expression "bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" (* "*") (cast_expression "(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15)" (( "(") (binary_expression "*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15" (pointer_expression "*(int *)(*(int *)(pbVar8 + 4) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(pbVar8 + 4) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" (( "(") (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" (* "*") (cast_expression "(int *)(pbVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + 4)" (( "(") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (labeled_statement "joined_r0x00040652:\n        if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" (statement_identifier "joined_r0x00040652") (: ":") (if_statement "if ((bVar2 & 0x10) == 0) {\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" (if "if") (parenthesized_expression "((bVar2 & 0x10) == 0)" (( "(") (binary_expression "(bVar2 & 0x10) == 0" (parenthesized_expression "(bVar2 & 0x10)" (( "(") (binary_expression "bVar2 & 0x10" (identifier "bVar2") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          bVar2 = *pbVar8 & 0x40;\n          goto joined_r0x00040270;\n        }" ({ "{") (expression_statement "bVar2 = *pbVar8 & 0x40;" (assignment_expression "bVar2 = *pbVar8 & 0x40" (identifier "bVar2") (= "=") (binary_expression "*pbVar8 & 0x40" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (& "&") (number_literal "0x40"))) (; ";")) (goto_statement "goto joined_r0x00040270;" (goto "goto") (statement_identifier "joined_r0x00040270") (; ";")) (} "}")))) (} "}")))) (expression_statement "bVar2 = *pbVar8 >> 6 & 1;" (assignment_expression "bVar2 = *pbVar8 >> 6 & 1" (identifier "bVar2") (= "=") (binary_expression "*pbVar8 >> 6 & 1" (binary_expression "*pbVar8 >> 6" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (>> ">>") (number_literal "6")) (& "&") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00040461;" (goto "goto") (statement_identifier "LAB_00040461") (; ";")) (} "}"))) (expression_statement "puVar12 = PTR__bfd_std_section_00077fa0;" (assignment_expression "puVar12 = PTR__bfd_std_section_00077fa0" (identifier "puVar12") (= "=") (identifier "PTR__bfd_std_section_00077fa0")) (; ";")) (if_statement "if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;" (if "if") (parenthesized_expression "(puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0))" (( "(") (binary_expression "puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" (identifier "puVar11") (!= "!=") (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xc0)" (( "(") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xc0" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xc0")) () ")")))) () ")")) (goto_statement "goto LAB_000403bb;" (goto "goto") (statement_identifier "LAB_000403bb") (; ";"))) (} "}")))) (labeled_statement "LAB_00040469:\n  lVar13 = FUN_0003f930();" (statement_identifier "LAB_00040469") (: ":") (expression_statement "lVar13 = FUN_0003f930();" (assignment_expression "lVar13 = FUN_0003f930()" (identifier "lVar13") (= "=") (call_expression "FUN_0003f930()" (identifier "FUN_0003f930") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (lVar13 == 0) {\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00040540:\n    FUN_0003e6c0();\n    goto LAB_0004031a;\n  }" ({ "{") (labeled_statement "LAB_00040540:\n    FUN_0003e6c0();" (statement_identifier "LAB_00040540") (: ":") (expression_statement "FUN_0003e6c0();" (call_expression "FUN_0003e6c0()" (identifier "FUN_0003e6c0") (argument_list "()" (( "(") () ")"))) (; ";"))) (goto_statement "goto LAB_0004031a;" (goto "goto") (statement_identifier "LAB_0004031a") (; ";")) (} "}"))) (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_24 = *pbVar3 & 1;" (assignment_expression "local_24 = *pbVar3 & 1" (identifier "local_24") (= "=") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((*pbVar3 & 1) == 0) {\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }" (if "if") (parenthesized_expression "((*pbVar3 & 1) == 0)" (( "(") (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar11 = (undefined4 *)puVar10[5];\n    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;\n    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    if (iVar9 == 0) goto LAB_000404a9;\nLAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;\n    if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }\n    uVar14 = FUN_0003f930();\n    uVar7 = FUN_0002a520();\n    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }\n    goto LAB_0004031a;\n  }" ({ "{") (expression_statement "puVar11 = (undefined4 *)puVar10[5];" (assignment_expression "puVar11 = (undefined4 *)puVar10[5]" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)puVar10[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;" (if "if") (parenthesized_expression "((*(byte *)(puVar10 + 4) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(puVar10 + 4) & 4) != 0" (parenthesized_expression "(*(byte *)(puVar10 + 4) & 4)" (( "(") (binary_expression "*(byte *)(puVar10 + 4) & 4" (pointer_expression "*(byte *)(puVar10 + 4)" (* "*") (cast_expression "(byte *)(puVar10 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000404a9;" (goto "goto") (statement_identifier "LAB_000404a9") (; ";"))) (if_statement "if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {\n      iVar9 = FUN_0003dc20(pbVar3);\n    }\n    else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" (if "if") (parenthesized_expression "(puVar11 == (undefined4 *)(puVar12 + 0xc0))" (( "(") (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0)" (identifier "puVar11") (== "==") (cast_expression "(undefined4 *)(puVar12 + 0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0xc0)" (( "(") (binary_expression "puVar12 + 0xc0" (identifier "puVar12") (+ "+") (number_literal "0xc0")) () ")")))) () ")")) (compound_statement "{\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" ({ "{") (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" (identifier "iVar9") (= "=") (call_expression "FUN_0003dc20(pbVar3)" (identifier "FUN_0003dc20") (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" (else "else") (compound_statement "{\n      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;\n      iVar9 = FUN_0003dc20(pbVar3);\n    }" ({ "{") (if_statement "if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;" (if "if") (parenthesized_expression "((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10)" (( "(") (binary_expression "*(byte *)((int)puVar11 + 0x15) & 0x10" (pointer_expression "*(byte *)((int)puVar11 + 0x15)" (* "*") (cast_expression "(byte *)((int)puVar11 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x15)" (( "(") (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000404a9;" (goto "goto") (statement_identifier "LAB_000404a9") (; ";"))) (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" (identifier "iVar9") (= "=") (call_expression "FUN_0003dc20(pbVar3)" (identifier "FUN_0003dc20") (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar9 == 0) goto LAB_000404a9;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000404a9;" (goto "goto") (statement_identifier "LAB_000404a9") (; ";"))) (labeled_statement "LAB_000405ac:\n    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;" (statement_identifier "LAB_000405ac") (: ":") (if_statement "if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;" (if "if") (parenthesized_expression "(DAT_0008137c == DAT_000813f0)" (( "(") (binary_expression "DAT_0008137c == DAT_000813f0" (identifier "DAT_0008137c") (== "==") (identifier "DAT_000813f0")) () ")")) (goto_statement "goto LAB_00040540;" (goto "goto") (statement_identifier "LAB_00040540") (; ";")))) (if_statement "if (DAT_0008137c != DAT_0008136c) {\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }" (if "if") (parenthesized_expression "(DAT_0008137c != DAT_0008136c)" (( "(") (binary_expression "DAT_0008137c != DAT_0008136c" (identifier "DAT_0008137c") (!= "!=") (identifier "DAT_0008136c")) () ")")) (compound_statement "{\n      if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }\n      if (DAT_0008137c != puVar10) goto LAB_000404b7;\n    }" ({ "{") (if_statement "if (local_24 == 0) {\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }\n      else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" (if "if") (parenthesized_expression "(local_24 == 0)" (( "(") (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];\n      }" ({ "{") (labeled_statement "LAB_000405df:\n        puVar10 = (undefined4 *)puVar10[5];" (statement_identifier "LAB_000405df") (: ":") (expression_statement "puVar10 = (undefined4 *)puVar10[5];" (assignment_expression "puVar10 = (undefined4 *)puVar10[5]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)puVar10[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")))) (; ";"))) (} "}")) (else_clause "else if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" (else "else") (if_statement "if (puVar10 == DAT_00081410) {\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" (if "if") (parenthesized_expression "(puVar10 == DAT_00081410)" (( "(") (binary_expression "puVar10 == DAT_00081410" (identifier "puVar10") (== "==") (identifier "DAT_00081410")) () ")")) (compound_statement "{\n        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);\n        goto LAB_000405df;\n      }" ({ "{") (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_000405df;" (goto "goto") (statement_identifier "LAB_000405df") (; ";")) (} "}"))))) (if_statement "if (DAT_0008137c != puVar10) goto LAB_000404b7;" (if "if") (parenthesized_expression "(DAT_0008137c != puVar10)" (( "(") (binary_expression "DAT_0008137c != puVar10" (identifier "DAT_0008137c") (!= "!=") (identifier "puVar10")) () ")")) (goto_statement "goto LAB_000404b7;" (goto "goto") (statement_identifier "LAB_000404b7") (; ";"))) (} "}"))) (expression_statement "uVar14 = FUN_0003f930();" (assignment_expression "uVar14 = FUN_0003f930()" (identifier "uVar14") (= "=") (call_expression "FUN_0003f930()" (identifier "FUN_0003f930") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_0002a520();" (assignment_expression "uVar7 = FUN_0002a520()" (identifier "uVar7") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }" (if "if") (parenthesized_expression "((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7))" (( "(") (binary_expression "(uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)" (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar14 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14")) (>> ">>") (number_literal "0x20")) () ")"))) (< "<") (call_expression "(uint)((uint)uVar14 < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar14 < uVar7)" (( "(") (binary_expression "(uint)uVar14 < uVar7" (cast_expression "(uint)uVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar14")) (< "<") (identifier "uVar7")) () ")")))) () ")")) (compound_statement "{\n      uVar14 = FUN_0002a520();\n      FUN_0003db40(pbVar3,uVar14);\n    }" ({ "{") (expression_statement "uVar14 = FUN_0002a520();" (assignment_expression "uVar14 = FUN_0002a520()" (identifier "uVar14") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0003db40(pbVar3,uVar14);" (call_expression "FUN_0003db40(pbVar3,uVar14)" (identifier "FUN_0003db40") (argument_list "(pbVar3,uVar14)" (( "(") (identifier "pbVar3") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0004031a;" (goto "goto") (statement_identifier "LAB_0004031a") (; ";")) (} "}"))) (if_statement "if (puVar10 == DAT_00081410) {\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }\n  else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(puVar10 == DAT_00081410)" (( "(") (binary_expression "puVar10 == DAT_00081410" (identifier "puVar10") (== "==") (identifier "DAT_00081410")) () ")")) (compound_statement "{\n    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;\n  }" ({ "{") (expression_statement "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);" (assignment_expression "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (* "*") (cast_expression "(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (( "(") (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))) goto LAB_000406af;" (if "if") (parenthesized_expression "(((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        )))" (( "(") (binary_expression "((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&\n       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))" (parenthesized_expression "((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0" (parenthesized_expression "(*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4)" (( "(") (binary_expression "*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4" (pointer_expression "*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" (* "*") (cast_expression "(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10)" (( "(") (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        ))" (( "(") (parenthesized_expression "(puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)\n        )" (( "(") (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)" (binary_expression "puVar11 == (undefined4 *)(puVar12 + 0xc0)" (identifier "puVar11") (== "==") (cast_expression "(undefined4 *)(puVar12 + 0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0xc0)" (( "(") (binary_expression "puVar12 + 0xc0" (identifier "puVar12") (+ "+") (number_literal "0xc0")) () ")")))) (|| "||") (parenthesized_expression "((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x15) & 0x10)" (( "(") (binary_expression "*(byte *)((int)puVar11 + 0x15) & 0x10" (pointer_expression "*(byte *)((int)puVar11 + 0x15)" (* "*") (cast_expression "(byte *)((int)puVar11 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x15)" (( "(") (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000406af;" (goto "goto") (statement_identifier "LAB_000406af") (; ";"))) (} "}")) (else_clause "else {\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    puVar11 = puVar10;\n    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }\n  }" ({ "{") (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" (identifier "puVar11") (= "=") (identifier "puVar10")) (; ";")) (if_statement "if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }" (if "if") (parenthesized_expression "(puVar10 == (undefined4 *)(puVar12 + 0xc0))" (( "(") (binary_expression "puVar10 == (undefined4 *)(puVar12 + 0xc0)" (identifier "puVar10") (== "==") (cast_expression "(undefined4 *)(puVar12 + 0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0xc0)" (( "(") (binary_expression "puVar12 + 0xc0" (identifier "puVar12") (+ "+") (number_literal "0xc0")) () ")")))) () ")")) (compound_statement "{\nLAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);\n      if (iVar9 != 0) goto LAB_000405ac;\n      puVar11 = puVar10;\n      if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }\n    }" ({ "{") (labeled_statement "LAB_000406af:\n      iVar9 = FUN_0003dc20(pbVar3);" (statement_identifier "LAB_000406af") (: ":") (expression_statement "iVar9 = FUN_0003dc20(pbVar3);" (assignment_expression "iVar9 = FUN_0003dc20(pbVar3)" (identifier "iVar9") (= "=") (call_expression "FUN_0003dc20(pbVar3)" (identifier "FUN_0003dc20") (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")")))) (; ";"))) (if_statement "if (iVar9 != 0) goto LAB_000405ac;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000405ac;" (goto "goto") (statement_identifier "LAB_000405ac") (; ";"))) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" (identifier "puVar11") (= "=") (identifier "puVar10")) (; ";")) (if_statement "if (puVar10 == DAT_00081410) {\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }" (if "if") (parenthesized_expression "(puVar10 == DAT_00081410)" (( "(") (binary_expression "puVar10 == DAT_00081410" (identifier "puVar10") (== "==") (identifier "DAT_00081410")) () ")")) (compound_statement "{\n        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);\n      }" ({ "{") (expression_statement "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);" (assignment_expression "puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (* "*") (cast_expression "(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14)" (( "(") (binary_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14" (pointer_expression "*(int *)(*(int *)(pbVar3 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pbVar3 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(pbVar3 + 0xc) + 4" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_000404a9:\n  if (DAT_0008136c == puVar11) goto LAB_000405ac;" (statement_identifier "LAB_000404a9") (: ":") (if_statement "if (DAT_0008136c == puVar11) goto LAB_000405ac;" (if "if") (parenthesized_expression "(DAT_0008136c == puVar11)" (( "(") (binary_expression "DAT_0008136c == puVar11" (identifier "DAT_0008136c") (== "==") (identifier "puVar11")) () ")")) (goto_statement "goto LAB_000405ac;" (goto "goto") (statement_identifier "LAB_000405ac") (; ";")))) (labeled_statement "LAB_000404b7:\n  uVar4 = FUN_0003f930();" (statement_identifier "LAB_000404b7") (: ":") (expression_statement "uVar4 = FUN_0003f930();" (assignment_expression "uVar4 = FUN_0003f930()" (identifier "uVar4") (= "=") (call_expression "FUN_0003f930()" (identifier "FUN_0003f930") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" (identifier "pbVar8") (= "=") (identifier "pbVar3")) (; ";")) (if_statement "if ((*pbVar3 & 1) == 0) {\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }\n  else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" (if "if") (parenthesized_expression "((*pbVar3 & 1) == 0)" (( "(") (binary_expression "(*pbVar3 & 1) == 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);\n  }" ({ "{") (labeled_statement "LAB_00040632:\n    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);" (statement_identifier "LAB_00040632") (: ":") (expression_statement "puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);" (assignment_expression "puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" (* "*") (cast_expression "(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar8 + 4) + 0x14)" (( "(") (binary_expression "*(int *)(pbVar8 + 4) + 0x14" (pointer_expression "*(int *)(pbVar8 + 4)" (* "*") (cast_expression "(int *)(pbVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar8 + 4)" (( "(") (binary_expression "pbVar8 + 4" (identifier "pbVar8") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" (else "else") (compound_statement "{\n    puVar10 = *(undefined4 **)(pbVar3 + 4);\n    if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }\n  }" ({ "{") (expression_statement "puVar10 = *(undefined4 **)(pbVar3 + 4);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar3 + 4)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar10 == DAT_00081410) {\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }" (if "if") (parenthesized_expression "(puVar10 == DAT_00081410)" (( "(") (binary_expression "puVar10 == DAT_00081410" (identifier "puVar10") (== "==") (identifier "DAT_00081410")) () ")")) (compound_statement "{\n      pbVar8 = *(byte **)(pbVar3 + 0xc);\n      goto LAB_00040632;\n    }" ({ "{") (expression_statement "pbVar8 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar8 = *(byte **)(pbVar3 + 0xc)" (identifier "pbVar8") (= "=") (pointer_expression "*(byte **)(pbVar3 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar3 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_00040632;" (goto "goto") (statement_identifier "LAB_00040632") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar1 = *puVar10;" (assignment_expression "uVar1 = *puVar10" (identifier "uVar1") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);" (assignment_expression "uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" (identifier "dcgettext") (argument_list "(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5)" (( "(") (number_literal "0") (, ",") (string_literal ""symbol `%s\' is already defined as \"%s\"/%s%ld"" (" """) (string_content "symbol `%s") (escape_sequence "\'") (string_content " is already defined as ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (string_content "/%s%ld") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);" (call_expression "FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4)" (identifier "FUN_00031620") (argument_list "(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") (, ",") (identifier "uVar1") (, ",") (pointer_expression "&DAT_00057aaa" (& "&") (identifier "DAT_00057aaa")) (, ",") (identifier "uVar4") () ")"))) (; ";")) (labeled_statement "LAB_0004031a:\n  if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" (statement_identifier "LAB_0004031a") (: ":") (if_statement "if (DAT_00081560 != 0) {\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" (if "if") (parenthesized_expression "(DAT_00081560 != 0)" (( "(") (binary_expression "DAT_00081560 != 0" (identifier "DAT_00081560") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }\n    iVar9 = DAT_00081560;\n    pbVar3[0x18] = 3;\n    *(int *)(pbVar3 + 8) = iVar9;\n    uVar14 = FUN_0003f930();\n    *(undefined8 *)(pbVar3 + 0x10) = uVar14;\n    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;\n    FUN_0003e210(pbVar3,DAT_00081360);\n    pbVar3[1] = pbVar3[1] | 1;\n  }" ({ "{") (if_statement "if ((*pbVar3 & 1) != 0) {\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }" (if "if") (parenthesized_expression "((*pbVar3 & 1) != 0)" (( "(") (binary_expression "(*pbVar3 & 1) != 0" (parenthesized_expression "(*pbVar3 & 1)" (( "(") (binary_expression "*pbVar3 & 1" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }\n    }" ({ "{") (if_statement "if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }\n      else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }" (if "if") (parenthesized_expression "(*(undefined4 **)(pbVar3 + 4) == DAT_00081410)" (( "(") (binary_expression "*(undefined4 **)(pbVar3 + 4) == DAT_00081410" (pointer_expression "*(undefined4 **)(pbVar3 + 4)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "DAT_00081410")) () ")")) (compound_statement "{\n        pbVar3 = *(byte **)(pbVar3 + 0xc);\n      }" ({ "{") (expression_statement "pbVar3 = *(byte **)(pbVar3 + 0xc);" (assignment_expression "pbVar3 = *(byte **)(pbVar3 + 0xc)" (identifier "pbVar3") (= "=") (pointer_expression "*(byte **)(pbVar3 + 0xc)" (* "*") (cast_expression "(byte **)(pbVar3 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        pbVar3 = (byte *)FUN_0003e490();\n      }" (else "else") (compound_statement "{\n        pbVar3 = (byte *)FUN_0003e490();\n      }" ({ "{") (expression_statement "pbVar3 = (byte *)FUN_0003e490();" (assignment_expression "pbVar3 = (byte *)FUN_0003e490()" (identifier "pbVar3") (= "=") (cast_expression "(byte *)FUN_0003e490()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003e490()" (identifier "FUN_0003e490") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar9 = DAT_00081560;" (assignment_expression "iVar9 = DAT_00081560" (identifier "iVar9") (= "=") (identifier "DAT_00081560")) (; ";")) (expression_statement "pbVar3[0x18] = 3;" (assignment_expression "pbVar3[0x18] = 3" (subscript_expression "pbVar3[0x18]" (identifier "pbVar3") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(int *)(pbVar3 + 8) = iVar9;" (assignment_expression "*(int *)(pbVar3 + 8) = iVar9" (pointer_expression "*(int *)(pbVar3 + 8)" (* "*") (cast_expression "(int *)(pbVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 8)" (( "(") (binary_expression "pbVar3 + 8" (identifier "pbVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "uVar14 = FUN_0003f930();" (assignment_expression "uVar14 = FUN_0003f930()" (identifier "uVar14") (= "=") (call_expression "FUN_0003f930()" (identifier "FUN_0003f930") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pbVar3 + 0x10) = uVar14;" (assignment_expression "*(undefined8 *)(pbVar3 + 0x10) = uVar14" (pointer_expression "*(undefined8 *)(pbVar3 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pbVar3 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0x10)" (( "(") (binary_expression "pbVar3 + 0x10" (identifier "pbVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;" (assignment_expression "*(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0" (pointer_expression "*(undefined4 **)(pbVar3 + 0x24)" (* "*") (cast_expression "(undefined4 **)(pbVar3 + 0x24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar3 + 0x24)" (( "(") (binary_expression "pbVar3 + 0x24" (identifier "pbVar3") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (pointer_expression "&DAT_000813a0" (& "&") (identifier "DAT_000813a0"))) (; ";")) (expression_statement "FUN_0003e210(pbVar3,DAT_00081360);" (call_expression "FUN_0003e210(pbVar3,DAT_00081360)" (identifier "FUN_0003e210") (argument_list "(pbVar3,DAT_00081360)" (( "(") (identifier "pbVar3") (, ",") (identifier "DAT_00081360") () ")"))) (; ";")) (expression_statement "pbVar3[1] = pbVar3[1] | 1;" (assignment_expression "pbVar3[1] = pbVar3[1] | 1" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "pbVar3[1] | 1" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (| "|") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "FUN_0004e050(pbVar3);" (call_expression "FUN_0004e050(pbVar3)" (identifier "FUN_0004e050") (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")"))) (; ";")) (return_statement "return pbVar3;" (return "return") (identifier "pbVar3") (; ";")) (} "}")))

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

type_1 * function_1(char *sym_name)

{
  type_2 *puVar1;
  type_3 *paVar2;
  type_4 *pfVar3;
  type_5 var_10;
  type_1 *var_2;
  char *pcVar5;
  type_6 var_4;
  char *format;
  type_1 *psVar7;
  int var_27;
  type_7 var_16;
  type_7 var_23;
  type_8 *var_25;
  type_9 var_13;
  type_10 var_14;
  type_10 var_24;
  type_5 local_24;
  
  var_2 = var_1(sym_name,0);
  var_16 = var_15;
  if (var_2 == (type_1 *)0x0) {
    if ((var_3 == 0) &&
       (var_4 = (*stdoutput->xvec->_bfd_is_local_label_name)(stdoutput,sym_name), pfVar3 = var_11,
       var_4 != 0)) {
      var_14 = var_5();
      var_2 = (type_1 *)var_6(sym_name,var_17,var_14,pfVar3);
    }
    else {
      pfVar3 = var_11;
      var_14 = var_5();
      var_2 = var_7(sym_name,var_17,var_14,pfVar3);
      var_8(var_2);
    }
    goto LAB_0004031a;
  }
  var_23 = (type_7)var_2->bsym;
  if (((type_11)var_2->sy_flags & 1) == 0) {
    puVar1 = &(var_2->sy_flags).field_0x1;
    *puVar1 = *puVar1 & 0xfd;
LAB_00040244:
    if (((type_8 *)var_23->flags == var_9 + 0xc0) &&
       ((var_2->sy_value).field_0x10 != '\x03')) {
      var_10 = *(type_5 *)&var_2->sy_flags >> 6 & 1;
LAB_00040461:
      var_25 = var_9;
      if (var_10 == 0) goto LAB_00040469;
    }
    else {
      var_10 = *(type_5 *)&var_2->sy_flags >> 6 & 1;
      if ((((type_8 *)var_23->flags)[0x15] & 0x10) != 0) goto LAB_00040461;
joined_r0x00040270:
      if (var_10 == 0) {
LAB_000403bb:
        if (var_2->sy_frag == var_11) {
          var_13 = var_12(var_2);
          var_14 = var_5();
          if (var_13 == var_14) {
            var_16 = (type_7)var_2->bsym;
            if (((type_11)var_2->sy_flags & 1) == 0) {
LAB_0004078e:
              var_16 = (type_7)var_16->flags;
            }
            else if (var_15 == var_16) {
              var_16 = (type_7)((var_2->sy_value).X_op_symbol)->bsym;
              goto LAB_0004078e;
            }
            if (var_17 == var_16) goto LAB_0004031a;
          }
        }
        pcVar5 = (char *)var_18(0,"symbol `%s\' is already defined");
        var_19(pcVar5,sym_name);
        var_2 = var_20(var_2,0);
        var_21(var_2);
        goto LAB_0004031a;
      }
    }
    var_25 = var_9;
    var_2 = var_20(var_2,1);
    var_22(var_2,0);
    psVar7 = var_2;
    if (((type_11)var_2->sy_flags & 1) != 0) {
      if ((type_7)var_2->bsym != var_15) goto LAB_00040469;
      psVar7 = (var_2->sy_value).X_op_symbol;
    }
    *(type_5 *)&psVar7->sy_flags = *(type_5 *)&psVar7->sy_flags & 0xbf;
  }
  else {
    if (var_15 != var_23) {
      if ((var_23 != (type_7)(var_9 + 0xc0)) &&
         ((((type_4 *)(var_2->sy_value).X_op_symbol != var_11 || (var_17 != var_23)) ||
          (var_14 = (var_2->sy_value).X_add_number, var_24 = var_5(), var_24 != var_14))))
      {
        pcVar5 = (char *)var_18(0,"symbol `%s\' is already defined",5);
        var_19(pcVar5,sym_name);
        return var_2;
      }
      var_16 = var_17;
      (var_2->sy_value).X_op_symbol = (type_1 *)var_11;
      var_2->bsym = (type_3 *)var_16;
      var_14 = var_5();
      (var_2->sy_value).X_add_number = var_14;
      goto LAB_0004031a;
    }
    var_2 = (var_2->sy_value).X_op_symbol;
    puVar1 = &(var_2->sy_flags).field_0x1;
    *puVar1 = *puVar1 & 0xfd;
    var_23 = (type_7)var_2->bsym;
    if (((type_11)var_2->sy_flags & 1) == 0) goto LAB_00040244;
    if (var_16 == var_23) {
      psVar7 = (var_2->sy_value).X_op_symbol;
      if (psVar7->bsym->section == (type_12 *)(var_9 + 0xc0)) {
        if ((psVar7->sy_value).field_0x10 == '\x03') {
          var_10 = var_9[0xd5];
          goto joined_r0x00040652;
        }
      }
      else {
        if (var_15 != var_16) goto LAB_000403bb;
        var_10 = *(type_5 *)((int)&psVar7->bsym->section->flags + 1);
joined_r0x00040652:
        if ((var_10 & 0x10) == 0) {
          var_10 = *(type_5 *)&psVar7->sy_flags & 0x40;
          goto joined_r0x00040270;
        }
      }
      var_10 = *(type_5 *)&psVar7->sy_flags >> 6 & 1;
      goto LAB_00040461;
    }
    var_25 = var_9;
    if (var_23 != (type_7)(var_9 + 0xc0)) goto LAB_000403bb;
  }
LAB_00040469:
  var_13 = var_12(var_2);
  if (var_13 == 0) {
LAB_00040540:
    var_21(var_2);
    goto LAB_0004031a;
  }
  var_16 = (type_7)var_2->bsym;
  local_24 = (type_5)((type_11)var_2->sy_flags & 1);
  if (((type_11)var_2->sy_flags & 1) == 0) {
    var_23 = (type_7)var_16->flags;
    if (((type_11)var_16->prev & 4) != 0) goto LAB_000404a9;
    if (var_23 == (type_7)(var_25 + 0xc0)) {
      var_27 = var_26(var_2);
    }
    else {
      if ((var_23->flags & 0x1000) == 0) goto LAB_000404a9;
      var_27 = var_26(var_2);
    }
    if (var_27 == 0) goto LAB_000404a9;
LAB_000405ac:
    if (var_17 == var_28) goto LAB_00040540;
    if (var_17 != var_29) {
      if ((type_11)local_24 == 0) {
LAB_000405df:
        var_16 = (type_7)var_16->flags;
      }
      else if (var_16 == var_15) {
        var_16 = (type_7)((var_2->sy_value).X_op_symbol)->bsym;
        goto LAB_000405df;
      }
      if (var_17 != var_16) goto LAB_000404b7;
    }
    var_13 = var_12(var_2);
    var_14 = var_5();
    if ((type_11)(var_13 >> 0x20) < (type_11)((type_11)var_13 < (type_11)var_14)) {
      var_14 = var_5();
      var_22(var_2,var_14);
    }
    goto LAB_0004031a;
  }
  if (var_16 == var_15) {
    paVar2 = ((var_2->sy_value).X_op_symbol)->bsym;
    var_23 = paVar2->section;
    if (((paVar2->flags & 4) == 0) &&
       ((var_23 == (type_7)(var_25 + 0xc0) || ((var_23->flags & 0x1000) != 0)))) goto LAB_000406af;
  }
  else {
    var_23 = var_16;
    if (var_16 == (type_7)(var_25 + 0xc0)) {
LAB_000406af:
      var_27 = var_26(var_2);
      if (var_27 != 0) goto LAB_000405ac;
      var_23 = var_16;
      if (var_16 == var_15) {
        var_23 = ((var_2->sy_value).X_op_symbol)->bsym->section;
      }
    }
  }
LAB_000404a9:
  if (var_29 == var_23) goto LAB_000405ac;
LAB_000404b7:
  var_13 = var_12(var_2);
  psVar7 = var_2;
  if (((type_11)var_2->sy_flags & 1) == 0) {
LAB_00040632:
    var_16 = psVar7->bsym->section;
  }
  else {
    var_16 = (type_7)var_2->bsym;
    if (var_16 == var_15) {
      psVar7 = (var_2->sy_value).X_op_symbol;
      goto LAB_00040632;
    }
  }
  pcVar5 = var_16->name;
  format = (char *)var_18(0,"symbol `%s\' is already defined as \"%s\"/%s%ld");
  var_19(format,sym_name,pcVar5,&DAT_00057aaa,(int)var_13);
LAB_0004031a:
  if (var_30 != (type_1 *)0x0) {
    if (((type_11)var_2->sy_flags & 1) != 0) {
      if ((type_7)var_2->bsym == var_15) {
        var_2 = (var_2->sy_value).X_op_symbol;
      }
      else {
        var_2 = var_31((type_13 *)var_2);
      }
    }
    psVar7 = var_30;
    (var_2->sy_value).field_0x10 = 3;
    (var_2->sy_value).X_add_symbol = psVar7;
    var_13 = var_12(psVar7);
    (var_2->sy_value).X_add_number = var_13;
    var_2->sy_frag = &zero_address_frag;
    var_32(var_2,expr_section);
    puVar1 = &(var_2->sy_flags).field_0x1;
    *puVar1 = *puVar1 | 1;
  }
  var_33(var_2);
  return var_2;
}


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

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

byte * MASKED(undefined4 param_1)

{
  undefined4 uVar1;
  byte bVar2;
  byte *pbVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 uVar6;
  uint uVar7;
  byte *pbVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  undefined *puVar12;
  longlong lVar13;
  undefined8 uVar14;
  longlong lVar15;
  byte local_24;
  
  pbVar3 = (byte *)FUN_00040020(param_1,0);
  puVar10 = DAT_00081410;
  if (pbVar3 == (byte *)0x0) {
    if ((DAT_00081428 == 0) &&
       (iVar5 = (**(code **)(*(int *)(DAT_00081544 + 4) + 0x11c))(DAT_00081544,param_1),
       iVar9 = DAT_000814a4, iVar5 != 0)) {
      uVar14 = FUN_0002a520();
      pbVar3 = (byte *)FUN_0003c9b0(param_1,DAT_0008137c,uVar14,iVar9);
    }
    else {
      iVar9 = DAT_000814a4;
      uVar14 = FUN_0002a520();
      pbVar3 = (byte *)FUN_0003e420(param_1,DAT_0008137c,uVar14,iVar9);
      FUN_0003cac0(pbVar3);
    }
    goto LAB_0004031a;
  }
  puVar11 = *(undefined4 **)(pbVar3 + 4);
  if ((*pbVar3 & 1) == 0) {
    pbVar3[1] = pbVar3[1] & 0xfd;
LAB_00040244:
    if (((undefined *)puVar11[5] == PTR__bfd_std_section_00077fa0 + 0xc0) && (pbVar3[0x18] != 3)) {
      bVar2 = *pbVar3 >> 6 & 1;
LAB_00040461:
      puVar12 = PTR__bfd_std_section_00077fa0;
      if (bVar2 == 0) goto LAB_00040469;
    }
    else {
      bVar2 = *pbVar3 >> 6 & 1;
      if ((((undefined *)puVar11[5])[0x15] & 0x10) != 0) goto LAB_00040461;
joined_r0x00040270:
      if (bVar2 == 0) {
LAB_000403bb:
        if (*(int *)(pbVar3 + 0x24) == DAT_000814a4) {
          lVar13 = FUN_0003f930();
          lVar15 = FUN_0002a520();
          if (lVar13 == lVar15) {
            puVar10 = *(undefined4 **)(pbVar3 + 4);
            if ((*pbVar3 & 1) == 0) {
LAB_0004078e:
              puVar10 = (undefined4 *)puVar10[5];
            }
            else if (DAT_00081410 == puVar10) {
              puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);
              goto LAB_0004078e;
            }
            if (DAT_0008137c == puVar10) goto LAB_0004031a;
          }
        }
        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);
        FUN_00031620(uVar4,param_1);
        pbVar3 = (byte *)FUN_0003fbf0(pbVar3,0);
        FUN_0003e6c0();
        goto LAB_0004031a;
      }
    }
    puVar12 = PTR__bfd_std_section_00077fa0;
    pbVar3 = (byte *)FUN_0003fbf0(pbVar3,1);
    FUN_0003db40(pbVar3,0,0);
    pbVar8 = pbVar3;
    if ((*pbVar3 & 1) != 0) {
      if (*(undefined4 **)(pbVar3 + 4) != DAT_00081410) goto LAB_00040469;
      pbVar8 = *(byte **)(pbVar3 + 0xc);
    }
    *pbVar8 = *pbVar8 & 0xbf;
  }
  else {
    if (DAT_00081410 != puVar11) {
      if ((puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) &&
         (((*(int *)(pbVar3 + 0xc) != DAT_000814a4 || (DAT_0008137c != puVar11)) ||
          (lVar13 = *(longlong *)(pbVar3 + 0x10), lVar15 = FUN_0002a520(), lVar15 != lVar13)))) {
        uVar4 = dcgettext(0,"symbol `%s\' is already defined",5);
        FUN_00031620(uVar4,param_1);
        return pbVar3;
      }
      puVar10 = DAT_0008137c;
      *(int *)(pbVar3 + 0xc) = DAT_000814a4;
      *(undefined4 **)(pbVar3 + 4) = puVar10;
      uVar14 = FUN_0002a520();
      *(undefined8 *)(pbVar3 + 0x10) = uVar14;
      goto LAB_0004031a;
    }
    pbVar3 = *(byte **)(pbVar3 + 0xc);
    pbVar3[1] = pbVar3[1] & 0xfd;
    puVar11 = *(undefined4 **)(pbVar3 + 4);
    if ((*pbVar3 & 1) == 0) goto LAB_00040244;
    if (puVar10 == puVar11) {
      pbVar8 = *(byte **)(pbVar3 + 0xc);
      if (*(undefined **)(*(int *)(pbVar8 + 4) + 0x14) == PTR__bfd_std_section_00077fa0 + 0xc0) {
        if (pbVar8[0x18] == 3) {
          bVar2 = PTR__bfd_std_section_00077fa0[0xd5];
          goto joined_r0x00040652;
        }
      }
      else {
        if (DAT_00081410 != puVar10) goto LAB_000403bb;
        bVar2 = *(byte *)(*(int *)(*(int *)(pbVar8 + 4) + 0x14) + 0x15);
joined_r0x00040652:
        if ((bVar2 & 0x10) == 0) {
          bVar2 = *pbVar8 & 0x40;
          goto joined_r0x00040270;
        }
      }
      bVar2 = *pbVar8 >> 6 & 1;
      goto LAB_00040461;
    }
    puVar12 = PTR__bfd_std_section_00077fa0;
    if (puVar11 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xc0)) goto LAB_000403bb;
  }
LAB_00040469:
  lVar13 = FUN_0003f930();
  if (lVar13 == 0) {
LAB_00040540:
    FUN_0003e6c0();
    goto LAB_0004031a;
  }
  puVar10 = *(undefined4 **)(pbVar3 + 4);
  local_24 = *pbVar3 & 1;
  if ((*pbVar3 & 1) == 0) {
    puVar11 = (undefined4 *)puVar10[5];
    if ((*(byte *)(puVar10 + 4) & 4) != 0) goto LAB_000404a9;
    if (puVar11 == (undefined4 *)(puVar12 + 0xc0)) {
      iVar9 = FUN_0003dc20(pbVar3);
    }
    else {
      if ((*(byte *)((int)puVar11 + 0x15) & 0x10) == 0) goto LAB_000404a9;
      iVar9 = FUN_0003dc20(pbVar3);
    }
    if (iVar9 == 0) goto LAB_000404a9;
LAB_000405ac:
    if (DAT_0008137c == DAT_000813f0) goto LAB_00040540;
    if (DAT_0008137c != DAT_0008136c) {
      if (local_24 == 0) {
LAB_000405df:
        puVar10 = (undefined4 *)puVar10[5];
      }
      else if (puVar10 == DAT_00081410) {
        puVar10 = *(undefined4 **)(*(int *)(pbVar3 + 0xc) + 4);
        goto LAB_000405df;
      }
      if (DAT_0008137c != puVar10) goto LAB_000404b7;
    }
    uVar14 = FUN_0003f930();
    uVar7 = FUN_0002a520();
    if ((uint)((ulonglong)uVar14 >> 0x20) < (uint)((uint)uVar14 < uVar7)) {
      uVar14 = FUN_0002a520();
      FUN_0003db40(pbVar3,uVar14);
    }
    goto LAB_0004031a;
  }
  if (puVar10 == DAT_00081410) {
    puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);
    if (((*(byte *)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x10) & 4) == 0) &&
       ((puVar11 == (undefined4 *)(puVar12 + 0xc0) || ((*(byte *)((int)puVar11 + 0x15) & 0x10) != 0)
        ))) goto LAB_000406af;
  }
  else {
    puVar11 = puVar10;
    if (puVar10 == (undefined4 *)(puVar12 + 0xc0)) {
LAB_000406af:
      iVar9 = FUN_0003dc20(pbVar3);
      if (iVar9 != 0) goto LAB_000405ac;
      puVar11 = puVar10;
      if (puVar10 == DAT_00081410) {
        puVar11 = *(undefined4 **)(*(int *)(*(int *)(pbVar3 + 0xc) + 4) + 0x14);
      }
    }
  }
LAB_000404a9:
  if (DAT_0008136c == puVar11) goto LAB_000405ac;
LAB_000404b7:
  uVar4 = FUN_0003f930();
  pbVar8 = pbVar3;
  if ((*pbVar3 & 1) == 0) {
LAB_00040632:
    puVar10 = *(undefined4 **)(*(int *)(pbVar8 + 4) + 0x14);
  }
  else {
    puVar10 = *(undefined4 **)(pbVar3 + 4);
    if (puVar10 == DAT_00081410) {
      pbVar8 = *(byte **)(pbVar3 + 0xc);
      goto LAB_00040632;
    }
  }
  uVar1 = *puVar10;
  uVar6 = dcgettext(0,"symbol `%s\' is already defined as \"%s\"/%s%ld",5);
  FUN_00031620(uVar6,param_1,uVar1,&DAT_00057aaa,uVar4);
LAB_0004031a:
  if (DAT_00081560 != 0) {
    if ((*pbVar3 & 1) != 0) {
      if (*(undefined4 **)(pbVar3 + 4) == DAT_00081410) {
        pbVar3 = *(byte **)(pbVar3 + 0xc);
      }
      else {
        pbVar3 = (byte *)FUN_0003e490();
      }
    }
    iVar9 = DAT_00081560;
    pbVar3[0x18] = 3;
    *(int *)(pbVar3 + 8) = iVar9;
    uVar14 = FUN_0003f930();
    *(undefined8 *)(pbVar3 + 0x10) = uVar14;
    *(undefined4 **)(pbVar3 + 0x24) = &DAT_000813a0;
    FUN_0003e210(pbVar3,DAT_00081360);
    pbVar3[1] = pbVar3[1] | 1;
  }
  FUN_0004e050(pbVar3);
  return pbVar3;
}

