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

void print_symbol_value_1(FILE *file,symbolS *sym)

{
  symbol_flags sVar1;
  byte bVar2;
  int iVar3;
  segT paVar4;
  valueT vVar5;
  symbolS *psVar6;
  asymbol *paVar7;
  undefined *puVar8;
  symbolS *local_20;
  
  paVar4 = (segT)sym->bsym;
  if (((uint)sym->sy_flags & 1) == 0) {
LAB_0003c1e6:
    psVar6 = (symbolS *)paVar4->id;
    if (psVar6 == (symbolS *)0x0) goto LAB_0003c1d4;
LAB_0003c1ed:
    if (*(char *)&psVar6->sy_flags == '\0') {
      psVar6 = (symbolS *)"(unnamed)";
    }
  }
  else {
    if (reg_section == paVar4) {
      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;
      goto LAB_0003c1e6;
    }
    psVar6 = (sym->sy_value).X_add_symbol;
    if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;
LAB_0003c1d4:
    psVar6 = (symbolS *)"(unnamed)";
  }
  fwrite(&DAT_0005a011,1,4,(FILE *)file);
  fprintf((FILE *)file,"%08lx",sym);
  fprintf((FILE *)file," %s",psVar6);
  bVar2 = *(byte *)&sym->sy_flags;
  local_20 = sym;
  if (((bVar2 & 1) == 0) || (local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)
     ) {
    if (local_20->sy_frag != &zero_address_frag) {
      fwrite(" frag ",1,6,(FILE *)file);
      fprintf((FILE *)file,"%08lx",local_20->sy_frag);
    }
    bVar2 = *(byte *)&local_20->sy_flags;
    if ((bVar2 & 2) != 0) {
      fwrite(" written",1,8,(FILE *)file);
      bVar2 = *(byte *)&local_20->sy_flags;
    }
    if ((bVar2 & 4) == 0) {
      if ((bVar2 & 8) != 0) {
        fwrite(" resolving",1,10,(FILE *)file);
        bVar2 = *(byte *)&local_20->sy_flags;
      }
    }
    else {
      fwrite(" resolved",1,9,(FILE *)file);
      bVar2 = *(byte *)&local_20->sy_flags;
    }
    if ((bVar2 & 0x10) == 0) {
      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;
LAB_0003c4c8:
      fwrite(" used",1,5,(FILE *)file);
      iVar3 = S_IS_LOCAL(local_20);
      if (iVar3 != 0) goto LAB_0003c4f0;
LAB_0003c339:
      iVar3 = S_IS_EXTERNAL(local_20);
      if (iVar3 == 0) goto LAB_0003c34d;
LAB_0003c518:
      fwrite(" extern",1,7,(FILE *)file);
      iVar3 = S_IS_WEAK(local_20);
    }
    else {
      fwrite(" used-in-reloc",1,0xe,(FILE *)file);
      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;
LAB_0003c325:
      iVar3 = S_IS_LOCAL(local_20);
      if (iVar3 == 0) goto LAB_0003c339;
LAB_0003c4f0:
      fwrite(" local",1,6,(FILE *)file);
      iVar3 = S_IS_EXTERNAL(local_20);
      if (iVar3 != 0) goto LAB_0003c518;
LAB_0003c34d:
      iVar3 = S_IS_WEAK(local_20);
    }
    if (iVar3 != 0) {
      fwrite(&DAT_0005a05f,1,5,(FILE *)file);
    }
    paVar4 = (segT)local_20->bsym;
    if (((uint)local_20->sy_flags & 1) == 0) {
      if (((uint)paVar4->next & 4) != 0) {
LAB_0003c6e0:
        fwrite(" debug",1,6,(FILE *)file);
        paVar4 = (segT)local_20->bsym;
        if (((uint)local_20->sy_flags & 1) != 0) {
          if (paVar4 == reg_section) {
            psVar6 = (local_20->sy_value).X_op_symbol;
            goto LAB_0003c790;
          }
          goto LAB_0003c440;
        }
      }
      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;
      goto LAB_0003c38d;
    }
    if (reg_section == paVar4) {
      psVar6 = (local_20->sy_value).X_op_symbol;
      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;
LAB_0003c790:
      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))
      goto LAB_0003c29f;
LAB_0003c454:
      fwrite(" defined",1,8,(FILE *)file);
      goto LAB_0003c29f;
    }
LAB_0003c440:
    if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;
LAB_0003c2b4:
    if (reg_section == paVar4) {
      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {
LAB_0003c5a0:
        fwrite(" weakrefr",1,9,(FILE *)file);
        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;
        paVar4 = (segT)local_20->bsym;
        if (reg_section != paVar4) goto LAB_0003c3ab;
      }
      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;
LAB_0003c73a:
      psVar6 = (local_20->sy_value).X_op_symbol;
      goto LAB_0003c3a5;
    }
  }
  else {
    if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {
      fwrite(" frag ",1,6,(FILE *)file);
      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);
      bVar2 = *(byte *)&sym->sy_flags;
    }
    if ((bVar2 & 4) != 0) {
      fwrite(" resolved",1,9,(FILE *)file);
    }
    fwrite(" local",1,6,(FILE *)file);
    local_20 = sym;
LAB_0003c29f:
    if (((uint)local_20->sy_flags & 1) != 0) {
      paVar4 = (segT)local_20->bsym;
      goto LAB_0003c2b4;
    }
LAB_0003c38d:
    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;
LAB_0003c397:
    psVar6 = local_20;
    if (((local_20->sy_flags).field_0x1 & 4) != 0) {
LAB_0003c5d8:
      fwrite(" weakrefd",1,9,(FILE *)file);
      psVar6 = local_20;
      if (((uint)local_20->sy_flags & 1) != 0) {
        paVar4 = (segT)local_20->bsym;
        if (reg_section == paVar4) goto LAB_0003c73a;
        goto LAB_0003c3ab;
      }
    }
LAB_0003c3a5:
    paVar4 = psVar6->bsym->section;
  }
LAB_0003c3ab:
  fprintf((FILE *)file," %s",paVar4->name);
  sVar1 = local_20->sy_flags;
  if (((uint)sVar1 & 1) == 0) {
    psVar6 = local_20;
    if (((uint)sVar1 & 4) != 0) {
LAB_0003c478:
      paVar4 = psVar6->bsym->section;
LAB_0003c3e2:
      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {
        vVar5 = S_GET_VALUE(local_20);
        fprintf((FILE *)file," %lx",vVar5);
      }
      goto LAB_0003c418;
    }
    if (7 < indent_level) goto LAB_0003c418;
    paVar7 = local_20->bsym;
LAB_0003c49c:
    paVar4 = paVar7->section;
  }
  else {
    paVar4 = (segT)local_20->bsym;
    if (paVar4 == reg_section) {
      psVar6 = (local_20->sy_value).X_op_symbol;
      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;
      if (7 < indent_level) goto LAB_0003c418;
      paVar7 = psVar6->bsym;
      goto LAB_0003c49c;
    }
    if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;
    if (7 < indent_level) goto LAB_0003c418;
  }
  if (paVar4 == (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;
  indent_level = indent_level + 1;
  puVar8 = &DAT_00056b65;
  fprintf((FILE *)file,"\n%*s<",indent_level * 4,&DAT_00056b65);
  if (((uint)local_20->sy_flags & 1) == 0) {
LAB_0003c7bb:
    print_expr_1(file,&local_20->sy_value);
  }
  else {
    if ((segT)local_20->bsym == reg_section) {
      local_20 = (local_20->sy_value).X_op_symbol;
      goto LAB_0003c7bb;
    }
    fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);
  }
  fputc(0x3e,(FILE *)file);
  indent_level = indent_level + -1;
LAB_0003c418:
  fflush((FILE *)file);
  return;
}



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

void FUN_0003c1a0(FILE *param_1,byte *param_2)

{
  byte bVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  byte *pbVar5;
  char *pcVar6;
  undefined *puVar7;
  byte *local_20;
  
  puVar3 = *(undefined4 **)(param_2 + 4);
  if ((*param_2 & 1) == 0) {
LAB_0003c1e6:
    pcVar6 = (char *)puVar3[1];
    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;
LAB_0003c1ed:
    if (*pcVar6 == '\0') {
      pcVar6 = "(unnamed)";
    }
  }
  else {
    if (DAT_00081680 == puVar3) {
      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);
      goto LAB_0003c1e6;
    }
    pcVar6 = *(char **)(param_2 + 8);
    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;
LAB_0003c1d4:
    pcVar6 = "(unnamed)";
  }
  fwrite(&DAT_0005a011,1,4,param_1);
  fprintf(param_1,"%08lx",param_2);
  fprintf(param_1," %s",pcVar6);
  bVar1 = *param_2;
  local_20 = param_2;
  if (((bVar1 & 1) == 0) ||
     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {
    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {
      fwrite(" frag ",1,6,param_1);
      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));
    }
    bVar1 = *local_20;
    if ((bVar1 & 2) != 0) {
      fwrite(" written",1,8,param_1);
      bVar1 = *local_20;
    }
    if ((bVar1 & 4) == 0) {
      if ((bVar1 & 8) != 0) {
        fwrite(" resolving",1,10,param_1);
        bVar1 = *local_20;
      }
    }
    else {
      fwrite(" resolved",1,9,param_1);
      bVar1 = *local_20;
    }
    if ((bVar1 & 0x10) == 0) {
      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;
LAB_0003c4c8:
      fwrite(" used",1,5,param_1);
      iVar2 = FUN_000386d0(local_20);
      if (iVar2 != 0) goto LAB_0003c4f0;
LAB_0003c339:
      iVar2 = FUN_000383f0(local_20);
      if (iVar2 == 0) goto LAB_0003c34d;
LAB_0003c518:
      fwrite(" extern",1,7,param_1);
      iVar2 = FUN_00038460(local_20);
    }
    else {
      fwrite(" used-in-reloc",1,0xe,param_1);
      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;
LAB_0003c325:
      iVar2 = FUN_000386d0(local_20);
      if (iVar2 == 0) goto LAB_0003c339;
LAB_0003c4f0:
      fwrite(" local",1,6,param_1);
      iVar2 = FUN_000383f0(local_20);
      if (iVar2 != 0) goto LAB_0003c518;
LAB_0003c34d:
      iVar2 = FUN_00038460(local_20);
    }
    if (iVar2 != 0) {
      fwrite(" weak",1,5,param_1);
    }
    puVar3 = *(undefined4 **)(local_20 + 4);
    if ((*local_20 & 1) == 0) {
      if ((*(byte *)(puVar3 + 3) & 4) != 0) {
LAB_0003c6e0:
        fwrite(" debug",1,6,param_1);
        puVar3 = *(undefined4 **)(local_20 + 4);
        if ((*local_20 & 1) != 0) {
          if (puVar3 == DAT_00081680) {
            iVar2 = *(int *)(local_20 + 0xc);
            goto LAB_0003c790;
          }
          goto LAB_0003c440;
        }
      }
      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;
      goto LAB_0003c38d;
    }
    if (DAT_00081680 == puVar3) {
      iVar2 = *(int *)(local_20 + 0xc);
      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;
LAB_0003c790:
      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)
      goto LAB_0003c29f;
LAB_0003c454:
      fwrite(" defined",1,8,param_1);
      goto LAB_0003c29f;
    }
LAB_0003c440:
    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;
LAB_0003c2b4:
    if (DAT_00081680 == puVar3) {
      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {
LAB_0003c5a0:
        fwrite(" weakrefr",1,9,param_1);
        if ((*local_20 & 1) == 0) goto LAB_0003c397;
        puVar3 = *(undefined4 **)(local_20 + 4);
        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;
      }
      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;
LAB_0003c73a:
      pbVar5 = *(byte **)(local_20 + 0xc);
      goto LAB_0003c3a5;
    }
  }
  else {
    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {
      fwrite(" frag ",1,6,param_1);
      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));
      bVar1 = *param_2;
    }
    if ((bVar1 & 4) != 0) {
      fwrite(" resolved",1,9,param_1);
    }
    fwrite(" local",1,6,param_1);
    local_20 = param_2;
LAB_0003c29f:
    if ((*local_20 & 1) != 0) {
      puVar3 = *(undefined4 **)(local_20 + 4);
      goto LAB_0003c2b4;
    }
LAB_0003c38d:
    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;
LAB_0003c397:
    pbVar5 = local_20;
    if ((local_20[1] & 4) != 0) {
LAB_0003c5d8:
      fwrite(" weakrefd",1,9,param_1);
      pbVar5 = local_20;
      if ((*local_20 & 1) != 0) {
        puVar3 = *(undefined4 **)(local_20 + 4);
        if (DAT_00081680 == puVar3) goto LAB_0003c73a;
        goto LAB_0003c3ab;
      }
    }
LAB_0003c3a5:
    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);
  }
LAB_0003c3ab:
  fprintf(param_1," %s",*puVar3);
  bVar1 = *local_20;
  if ((bVar1 & 1) == 0) {
    pbVar5 = local_20;
    if ((bVar1 & 4) != 0) {
LAB_0003c478:
      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);
LAB_0003c3e2:
      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&
         (DAT_000815e0 != puVar3)) {
        uVar4 = FUN_00039e90();
        fprintf(param_1," %lx",uVar4);
      }
      goto LAB_0003c418;
    }
    if (7 < DAT_0008188c) goto LAB_0003c418;
    iVar2 = *(int *)(local_20 + 4);
LAB_0003c49c:
    puVar3 = *(undefined4 **)(iVar2 + 0x10);
  }
  else {
    puVar3 = *(undefined4 **)(local_20 + 4);
    if (puVar3 == DAT_00081680) {
      pbVar5 = *(byte **)(local_20 + 0xc);
      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;
      if (7 < DAT_0008188c) goto LAB_0003c418;
      iVar2 = *(int *)(pbVar5 + 4);
      goto LAB_0003c49c;
    }
    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;
    if (7 < DAT_0008188c) goto LAB_0003c418;
  }
  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;
  DAT_0008188c = DAT_0008188c + 1;
  puVar7 = &DAT_00056b65;
  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);
  if ((*local_20 & 1) == 0) {
LAB_0003c7bb:
    FUN_0003bd10(param_1,local_20 + 8);
  }
  else {
    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {
      local_20 = *(byte **)(local_20 + 0xc);
      goto LAB_0003c7bb;
    }
    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);
  }
  fputc(0x3e,param_1);
  DAT_0008188c = DAT_0008188c + -1;
LAB_0003c418:
  fflush(param_1);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017010
ADD EBX,0x3be57
SUB ESP,0x1c
MOV EBP,dword ptr [ESP + 0x34]
MOV ESI,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [EBP + 0x4]
TEST byte ptr [EBP],0x1
JZ 0x0003c1e6
LEA ECX,[EBX + 0x9680]
CMP dword ptr [ECX],EAX
JZ 0x0003c1e0
MOV EDI,dword ptr [EBP + 0x8]
TEST EDI,EDI
JNZ 0x0003c1ed
LEA EDI,[EBX + 0xfffe2007]
JMP 0x0003c1f9
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
MOV EDI,dword ptr [EAX + 0x4]
TEST EDI,EDI
JZ 0x0003c1d4
CMP byte ptr [EDI],0x0
LEA EAX,[EBX + 0xfffe2007]
CMOVZ EDI,EAX
LEA EAX,[EBX + 0xfffe2011]
PUSH ESI
PUSH 0x4
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdff50]
PUSH EBP
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH ESI
CALL 0x00015440
ADD ESP,0xc
PUSH EDI
LEA EDI,[EBX + 0xfffdfec4]
PUSH EDI
PUSH ESI
CALL 0x00015440
MOVZX EAX,byte ptr [EBP]
ADD ESP,0x10
TEST AL,0x1
JZ 0x0003c2ca
LEA ECX,[EBX + 0x9680]
MOV EDX,dword ptr [EBP + 0xc]
MOV ECX,dword ptr [ECX]
CMP dword ptr [EBP + 0x4],ECX
JZ 0x0003c2c8
TEST EDX,EDX
JZ 0x0003c283
CMP EDX,dword ptr [EBX + 0xffffff64]
JZ 0x0003c283
LEA EAX,[EBX + 0xfffe2016]
PUSH ESI
PUSH 0x6
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0xc
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x00015440
MOVZX EAX,byte ptr [EBP]
ADD ESP,0x10
TEST AL,0x4
JNZ 0x0003c6c0
LEA EAX,[EBX + 0xfffe2027]
PUSH ESI
PUSH 0x6
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
TEST byte ptr [EBP],0x1
JZ 0x0003c38d
LEA ECX,[EBX + 0x9680]
MOV EAX,dword ptr [EBP + 0x4]
MOV ECX,dword ptr [ECX]
CMP ECX,EAX
JZ 0x0003c720
MOV dword ptr [ESP + 0xc],EBP
JMP 0x0003c3ab
MOV EBP,EDX
LEA EAX,[EBX + 0x9620]
CMP dword ptr [EBP + 0x20],EAX
JZ 0x0003c2f9
LEA EAX,[EBX + 0xfffe2016]
PUSH ESI
PUSH 0x6
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0xc
PUSH dword ptr [EBP + 0x20]
PUSH dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x00015440
ADD ESP,0x10
MOVZX EAX,byte ptr [EBP]
TEST AL,0x2
JNZ 0x0003c580
TEST AL,0x4
JNZ 0x0003c560
TEST AL,0x8
JNZ 0x0003c6a0
TEST AL,0x10
JNZ 0x0003c4a8
TEST AL,0x20
JNZ 0x0003c4c8
SUB ESP,0xc
PUSH EBP
CALL 0x000386d0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0003c4f0
SUB ESP,0xc
PUSH EBP
CALL 0x000383f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0003c518
SUB ESP,0xc
PUSH EBP
CALL 0x00038460
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0003c540
MOV EAX,dword ptr [EBP + 0x4]
TEST byte ptr [EBP],0x1
JNZ 0x0003c430
TEST byte ptr [EAX + 0xc],0x4
JNZ 0x0003c6e0
MOV ECX,dword ptr [EBX + 0xffffffa0]
ADD ECX,0xa8
CMP dword ptr [EAX + 0x10],ECX
JNZ 0x0003c454
TEST byte ptr [EBP + 0x1],0x2
JNZ 0x0003c5a0
TEST byte ptr [EBP + 0x1],0x4
JNZ 0x0003c5d8
MOV dword ptr [ESP + 0xc],EBP
MOV EAX,dword ptr [EBP + 0x4]
MOV EAX,dword ptr [EAX + 0x10]
SUB ESP,0x4
PUSH dword ptr [EAX]
PUSH EDI
PUSH ESI
CALL 0x00015440
MOV EDX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOVZX EAX,byte ptr [EDX]
TEST AL,0x1
JZ 0x0003c470
LEA ECX,[EBX + 0x9680]
MOV EDX,dword ptr [EDX + 0x4]
CMP EDX,dword ptr [ECX]
JZ 0x0003c750
TEST AL,0x4
JZ 0x0003c610
MOV EAX,dword ptr [EBX + 0xffffffa0]
ADD EAX,0xa8
CMP EDX,EAX
JZ 0x0003c418
LEA EAX,[EBX + 0x95e0]
CMP dword ptr [EAX],EDX
JZ 0x0003c418
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00039e90
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffe1f4b]
PUSH EAX
PUSH ESI
CALL 0x00015440
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x000150d0
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA ECX,[EBX + 0x9680]
MOV ECX,dword ptr [ECX]
CMP ECX,EAX
JZ 0x0003c780
MOV EDX,dword ptr [EBX + 0xffffffa0]
ADD EDX,0xa8
CMP EAX,EDX
JZ 0x0003c2b4
LEA EAX,[EBX + 0xfffe206c]
PUSH ESI
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
JMP 0x0003c29f
TEST AL,0x4
JZ 0x0003c488
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EDX + 0x4]
MOV EDX,dword ptr [EAX + 0x10]
JMP 0x0003c3e2
LEA EDI,[EBX + 0x988c]
MOV EAX,dword ptr [EDI]
CMP EAX,0x7
JG 0x0003c418
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ECX + 0x4]
MOV EDX,dword ptr [EDX + 0x10]
JMP 0x0003c621
LEA EAX,[EBX + 0xfffe2042]
PUSH ESI
PUSH 0xe
PUSH 0x1
PUSH EAX
CALL 0x000152c0
MOVZX EAX,byte ptr [EBP]
ADD ESP,0x10
TEST AL,0x20
JZ 0x0003c325
LEA EAX,[EBX + 0xfffe2051]
PUSH ESI
PUSH 0x5
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
SUB ESP,0xc
PUSH EBP
CALL 0x000386d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003c339
LEA EAX,[EBX + 0xfffe2027]
PUSH ESI
PUSH 0x6
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
SUB ESP,0xc
PUSH EBP
CALL 0x000383f0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003c34d
LEA EAX,[EBX + 0xfffe2057]
PUSH ESI
PUSH 0x7
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
SUB ESP,0xc
PUSH EBP
CALL 0x00038460
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003c361
LEA EAX,[EBX + 0xfffe205f]
PUSH ESI
PUSH 0x5
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
JMP 0x0003c361
LEA EAX,[EBX + 0xfffe201d]
PUSH ESI
PUSH 0x9
PUSH 0x1
PUSH EAX
CALL 0x000152c0
MOVZX EAX,byte ptr [EBP]
ADD ESP,0x10
JMP 0x0003c315
LEA EAX,[EBX + 0xfffe202e]
PUSH ESI
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x000152c0
MOVZX EAX,byte ptr [EBP]
ADD ESP,0x10
JMP 0x0003c305
LEA EAX,[EBX + 0xfffe2075]
PUSH ESI
PUSH 0x9
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
TEST byte ptr [EBP],0x1
JZ 0x0003c397
LEA ECX,[EBX + 0x9680]
MOV EAX,dword ptr [EBP + 0x4]
CMP dword ptr [ECX],EAX
JZ 0x0003c72d
JMP 0x0003c2bc
LEA EAX,[EBX + 0xfffe207f]
PUSH ESI
PUSH 0x9
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
MOV dword ptr [ESP + 0xc],EBP
TEST byte ptr [EBP],0x1
JZ 0x0003c3a5
LEA ECX,[EBX + 0x9680]
MOV EAX,dword ptr [EBP + 0x4]
CMP dword ptr [ECX],EAX
JZ 0x0003c73a
JMP 0x0003c3ab
LEA EDI,[EBX + 0x988c]
MOV EAX,dword ptr [EDI]
CMP EAX,0x7
JG 0x0003c418
MOV ECX,dword ptr [EBX + 0xffffffa0]
ADD ECX,0xa8
CMP EDX,ECX
JZ 0x0003c418
ADD EAX,0x1
LEA EDX,[EBX + 0xfffdeb65]
MOV dword ptr [EDI],EAX
SHL EAX,0x2
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffe1fdf]
PUSH EAX
PUSH ESI
CALL 0x00015440
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
TEST byte ptr [ECX],0x1
JZ 0x0003c7bb
LEA EAX,[EBX + 0x9680]
MOV EAX,dword ptr [EAX]
CMP dword ptr [ECX + 0x4],EAX
JZ 0x0003c7b0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe1f43]
PUSH dword ptr [ECX + 0x10]
PUSH EAX
PUSH ESI
CALL 0x00015440
ADD ESP,0x10
SUB ESP,0x8
PUSH ESI
PUSH 0x3e
CALL 0x000155e0
SUB dword ptr [EDI],0x1
ADD ESP,0x10
JMP 0x0003c418
LEA EAX,[EBX + 0xfffe2037]
PUSH ESI
PUSH 0xa
PUSH 0x1
PUSH EAX
CALL 0x000152c0
MOVZX EAX,byte ptr [EBP]
ADD ESP,0x10
JMP 0x0003c315
LEA EAX,[EBX + 0xfffe201d]
PUSH ESI
PUSH 0x9
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
JMP 0x0003c28b
LEA EAX,[EBX + 0xfffe2065]
PUSH ESI
PUSH 0x6
PUSH 0x1
PUSH EAX
CALL 0x000152c0
ADD ESP,0x10
TEST byte ptr [EBP],0x1
MOV EAX,dword ptr [EBP + 0x4]
JZ 0x0003c378
LEA ECX,[EBX + 0x9680]
MOV ECX,dword ptr [ECX]
CMP EAX,ECX
JNZ 0x0003c440
MOV EAX,dword ptr [EBP + 0xc]
JMP 0x0003c790
MOV EAX,dword ptr [EBP + 0xc]
TEST byte ptr [EAX + 0x1],0x2
JNZ 0x0003c5a0
MOV EAX,dword ptr [EBP + 0xc]
TEST byte ptr [EAX + 0x1],0x4
JNZ 0x0003c5d8
MOV dword ptr [ESP + 0xc],EBP
MOV EBP,dword ptr [EBP + 0xc]
JMP 0x0003c3a5
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EAX + 0xc]
TEST byte ptr [EDX],0x4
JNZ 0x0003c478
LEA EDI,[EBX + 0x988c]
MOV EAX,dword ptr [EDI]
CMP EAX,0x7
JG 0x0003c418
MOV EDX,dword ptr [EDX + 0x4]
JMP 0x0003c49c
MOV EAX,dword ptr [EBP + 0xc]
MOV ECX,dword ptr [EAX + 0x4]
TEST byte ptr [ECX + 0xc],0x4
JNZ 0x0003c6e0
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EBX + 0xffffffa0]
ADD EAX,0xa8
CMP dword ptr [ECX + 0x10],EAX
JZ 0x0003c29f
JMP 0x0003c454
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0xc],EAX
SUB ESP,0x8
MOV EBP,dword ptr [ESP + 0x14]
ADD EBP,0x8
PUSH EBP
PUSH ESI
CALL 0x0003bd10
ADD ESP,0x10
JMP 0x0003c689
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0003c1a0(FILE *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}\n\n" comment (function_definition "void FUN_0003c1a0(FILE *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}" primitive_type (function_declarator "FUN_0003c1a0(FILE *param_1,byte *param_2)" identifier (parameter_list "(FILE *param_1,byte *param_2)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "puVar3 = *(undefined4 **)(param_2 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(param_2 + 4)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 4)" * (cast_expression "(undefined4 **)(param_2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" if (parenthesized_expression "((*param_2 & 1) == 0)" ( (binary_expression "(*param_2 & 1) == 0" (parenthesized_expression "(*param_2 & 1)" ( (binary_expression "*param_2 & 1" (pointer_expression "*param_2" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }" { (labeled_statement "LAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];" statement_identifier : (expression_statement "pcVar6 = (char *)puVar3[1];" (assignment_expression "pcVar6 = (char *)puVar3[1]" identifier = (cast_expression "(char *)puVar3[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[1]" identifier [ number_literal ]))) ;)) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c1d4;" goto statement_identifier ;)) (labeled_statement "LAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }" statement_identifier : (if_statement "if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }" if (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar6 = "(unnamed)";\n    }" { (expression_statement "pcVar6 = "(unnamed)";" (assignment_expression "pcVar6 = "(unnamed)"" identifier = (string_literal ""(unnamed)"" " string_content ")) ;) }))) }) (else_clause "else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" else (compound_statement "{\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" { (if_statement "if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (compound_statement "{\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }" { (expression_statement "puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0003c1e6;" goto statement_identifier ;) })) (expression_statement "pcVar6 = *(char **)(param_2 + 8);" (assignment_expression "pcVar6 = *(char **)(param_2 + 8)" identifier = (pointer_expression "*(char **)(param_2 + 8)" * (cast_expression "(char **)(param_2 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c1ed;" goto statement_identifier ;)) (labeled_statement "LAB_0003c1d4:\n    pcVar6 = "(unnamed)";" statement_identifier : (expression_statement "pcVar6 = "(unnamed)";" (assignment_expression "pcVar6 = "(unnamed)"" identifier = (string_literal ""(unnamed)"" " string_content ")) ;)) }))) (expression_statement "fwrite(&DAT_0005a011,1,4,param_1);" (call_expression "fwrite(&DAT_0005a011,1,4,param_1)" identifier (argument_list "(&DAT_0005a011,1,4,param_1)" ( (pointer_expression "&DAT_0005a011" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(param_1,"%08lx",param_2);" (call_expression "fprintf(param_1,"%08lx",param_2)" identifier (argument_list "(param_1,"%08lx",param_2)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf(param_1," %s",pcVar6);" (call_expression "fprintf(param_1," %s",pcVar6)" identifier (argument_list "(param_1," %s",pcVar6)" ( identifier , (string_literal "" %s"" " string_content ") , identifier ))) ;) (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_20 = param_2;" (assignment_expression "local_20 = param_2" identifier = identifier) ;) (if_statement "if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" if (parenthesized_expression "(((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680))" ( (binary_expression "((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)" (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)" ( (comma_expression "local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680" (assignment_expression "local_20 = *(byte **)(param_2 + 0xc)" identifier = (pointer_expression "*(byte **)(param_2 + 0xc)" * (cast_expression "(byte **)(param_2 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) , (binary_expression "*(undefined4 **)(param_2 + 4) == DAT_00081680" (pointer_expression "*(undefined4 **)(param_2 + 4)" * (cast_expression "(undefined4 **)(param_2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) == identifier)) ))) )) (compound_statement "{\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }" { (if_statement "if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }" if (parenthesized_expression "(*(undefined **)(local_20 + 0x20) != &DAT_00081620)" ( (binary_expression "*(undefined **)(local_20 + 0x20) != &DAT_00081620" (pointer_expression "*(undefined **)(local_20 + 0x20)" * (cast_expression "(undefined **)(local_20 + 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0x20)" ( (binary_expression "local_20 + 0x20" identifier + number_literal) )))) != (pointer_expression "&DAT_00081620" & identifier)) )) (compound_statement "{\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }" { (expression_statement "fwrite(" frag ",1,6,param_1);" (call_expression "fwrite(" frag ",1,6,param_1)" identifier (argument_list "(" frag ",1,6,param_1)" ( (string_literal "" frag "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));" (call_expression "fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20))" identifier (argument_list "(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20))" ( identifier , (string_literal ""%08lx"" " string_content ") , (pointer_expression "*(undefined4 *)(local_20 + 0x20)" * (cast_expression "(undefined4 *)(local_20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0x20)" ( (binary_expression "local_20 + 0x20" identifier + number_literal) )))) ))) ;) })) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) (if_statement "if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }" { (expression_statement "fwrite(" written",1,8,param_1);" (call_expression "fwrite(" written",1,8,param_1)" identifier (argument_list "(" written",1,8,param_1)" ( (string_literal "" written"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) })) (if_statement "if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }" { (if_statement "if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }" if (parenthesized_expression "((bVar1 & 8) != 0)" ( (binary_expression "(bVar1 & 8) != 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }" { (expression_statement "fwrite(" resolving",1,10,param_1);" (call_expression "fwrite(" resolving",1,10,param_1)" identifier (argument_list "(" resolving",1,10,param_1)" ( (string_literal "" resolving"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) })) }) (else_clause "else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" else (compound_statement "{\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" { (expression_statement "fwrite(" resolved",1,9,param_1);" (call_expression "fwrite(" resolved",1,9,param_1)" identifier (argument_list "(" resolved",1,9,param_1)" ( (string_literal "" resolved"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) }))) (if_statement "if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" if (parenthesized_expression "((bVar1 & 0x10) == 0)" ( (binary_expression "(bVar1 & 0x10) == 0" (parenthesized_expression "(bVar1 & 0x10)" ( (binary_expression "bVar1 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }" { (if_statement "if ((bVar1 & 0x20) == 0) goto LAB_0003c325;" if (parenthesized_expression "((bVar1 & 0x20) == 0)" ( (binary_expression "(bVar1 & 0x20) == 0" (parenthesized_expression "(bVar1 & 0x20)" ( (binary_expression "bVar1 & 0x20" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003c325;" goto statement_identifier ;)) (labeled_statement "LAB_0003c4c8:\n      fwrite(" used",1,5,param_1);" statement_identifier : (expression_statement "fwrite(" used",1,5,param_1);" (call_expression "fwrite(" used",1,5,param_1)" identifier (argument_list "(" used",1,5,param_1)" ( (string_literal "" used"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar2 = FUN_000386d0(local_20);" (assignment_expression "iVar2 = FUN_000386d0(local_20)" identifier = (call_expression "FUN_000386d0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0003c4f0;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c4f0;" goto statement_identifier ;)) (labeled_statement "LAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);" statement_identifier : (expression_statement "iVar2 = FUN_000383f0(local_20);" (assignment_expression "iVar2 = FUN_000383f0(local_20)" identifier = (call_expression "FUN_000383f0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) (if_statement "if (iVar2 == 0) goto LAB_0003c34d;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c34d;" goto statement_identifier ;)) (labeled_statement "LAB_0003c518:\n      fwrite(" extern",1,7,param_1);" statement_identifier : (expression_statement "fwrite(" extern",1,7,param_1);" (call_expression "fwrite(" extern",1,7,param_1)" identifier (argument_list "(" extern",1,7,param_1)" ( (string_literal "" extern"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar2 = FUN_00038460(local_20);" (assignment_expression "iVar2 = FUN_00038460(local_20)" identifier = (call_expression "FUN_00038460(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) }) (else_clause "else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" else (compound_statement "{\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" { (expression_statement "fwrite(" used-in-reloc",1,0xe,param_1);" (call_expression "fwrite(" used-in-reloc",1,0xe,param_1)" identifier (argument_list "(" used-in-reloc",1,0xe,param_1)" ( (string_literal "" used-in-reloc"" " string_content ") , number_literal , number_literal , identifier ))) ;) (if_statement "if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;" if (parenthesized_expression "((*local_20 & 0x20) != 0)" ( (binary_expression "(*local_20 & 0x20) != 0" (parenthesized_expression "(*local_20 & 0x20)" ( (binary_expression "*local_20 & 0x20" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c4c8;" goto statement_identifier ;)) (labeled_statement "LAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);" statement_identifier : (expression_statement "iVar2 = FUN_000386d0(local_20);" (assignment_expression "iVar2 = FUN_000386d0(local_20)" identifier = (call_expression "FUN_000386d0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) (if_statement "if (iVar2 == 0) goto LAB_0003c339;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c339;" goto statement_identifier ;)) (labeled_statement "LAB_0003c4f0:\n      fwrite(" local",1,6,param_1);" statement_identifier : (expression_statement "fwrite(" local",1,6,param_1);" (call_expression "fwrite(" local",1,6,param_1)" identifier (argument_list "(" local",1,6,param_1)" ( (string_literal "" local"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar2 = FUN_000383f0(local_20);" (assignment_expression "iVar2 = FUN_000383f0(local_20)" identifier = (call_expression "FUN_000383f0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0003c518;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c518;" goto statement_identifier ;)) (labeled_statement "LAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);" statement_identifier : (expression_statement "iVar2 = FUN_00038460(local_20);" (assignment_expression "iVar2 = FUN_00038460(local_20)" identifier = (call_expression "FUN_00038460(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) }))) (if_statement "if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      fwrite(" weak",1,5,param_1);\n    }" { (expression_statement "fwrite(" weak",1,5,param_1);" (call_expression "fwrite(" weak",1,5,param_1)" identifier (argument_list "(" weak",1,5,param_1)" ( (string_literal "" weak"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" if (parenthesized_expression "((*local_20 & 1) == 0)" ( (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" { (if_statement "if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" if (parenthesized_expression "((*(byte *)(puVar3 + 3) & 4) != 0)" ( (binary_expression "(*(byte *)(puVar3 + 3) & 4) != 0" (parenthesized_expression "(*(byte *)(puVar3 + 3) & 4)" ( (binary_expression "*(byte *)(puVar3 + 3) & 4" (pointer_expression "*(byte *)(puVar3 + 3)" * (cast_expression "(byte *)(puVar3 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" { (labeled_statement "LAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);" statement_identifier : (expression_statement "fwrite(" debug",1,6,param_1);" (call_expression "fwrite(" debug",1,6,param_1)" identifier (argument_list "(" debug",1,6,param_1)" ( (string_literal "" debug"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" if (parenthesized_expression "((*local_20 & 1) != 0)" ( (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" { (if_statement "if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }" if (parenthesized_expression "(puVar3 == DAT_00081680)" ( (binary_expression "puVar3 == DAT_00081680" identifier == identifier) )) (compound_statement "{\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }" { (expression_statement "iVar2 = *(int *)(local_20 + 0xc);" (assignment_expression "iVar2 = *(int *)(local_20 + 0xc)" identifier = (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c790;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003c440;" goto statement_identifier ;) })) })) (if_statement "if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;" if (parenthesized_expression "((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "(undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8" (cast_expression "(undefined *)puVar3[4]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[4]" identifier [ number_literal ])) != (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal)) )) (goto_statement "goto LAB_0003c454;" goto statement_identifier ;)) (goto_statement "goto LAB_0003c38d;" goto statement_identifier ;) })) (if_statement "if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (compound_statement "{\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }" { (expression_statement "iVar2 = *(int *)(local_20 + 0xc);" (assignment_expression "iVar2 = *(int *)(local_20 + 0xc)" identifier = (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;" if (parenthesized_expression "((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4)" ( (binary_expression "*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4" (pointer_expression "*(byte *)(*(int *)(iVar2 + 4) + 0xc)" * (cast_expression "(byte *)(*(int *)(iVar2 + 4) + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0xc)" ( (binary_expression "*(int *)(iVar2 + 4) + 0xc" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c6e0;" goto statement_identifier ;)) (labeled_statement "LAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;" statement_identifier : (if_statement "if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;" if (parenthesized_expression "(*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8" (pointer_expression "*(undefined **)(*(int *)(iVar2 + 4) + 0x10)" * (cast_expression "(undefined **)(*(int *)(iVar2 + 4) + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x10)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x10" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) )))) == (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal)) )) (goto_statement "goto LAB_0003c29f;" goto statement_identifier ;))) (labeled_statement "LAB_0003c454:\n      fwrite(" defined",1,8,param_1);" statement_identifier : (expression_statement "fwrite(" defined",1,8,param_1);" (call_expression "fwrite(" defined",1,8,param_1)" identifier (argument_list "(" defined",1,8,param_1)" ( (string_literal "" defined"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (goto_statement "goto LAB_0003c29f;" goto statement_identifier ;) })) (labeled_statement "LAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" statement_identifier : (if_statement "if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" if (parenthesized_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c454;" goto statement_identifier ;))) (labeled_statement "LAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" statement_identifier : (if_statement "if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (compound_statement "{\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" { (if_statement "if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }" if (parenthesized_expression "((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0)" ( (binary_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0" (parenthesized_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2)" ( (binary_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2" (pointer_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1)" * (cast_expression "(byte *)(*(int *)(local_20 + 0xc) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_20 + 0xc) + 1)" ( (binary_expression "*(int *)(local_20 + 0xc) + 1" (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }" { (labeled_statement "LAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);" statement_identifier : (expression_statement "fwrite(" weakrefr",1,9,param_1);" (call_expression "fwrite(" weakrefr",1,9,param_1)" identifier (argument_list "(" weakrefr",1,9,param_1)" ( (string_literal "" weakrefr"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (if_statement "if ((*local_20 & 1) == 0) goto LAB_0003c397;" if (parenthesized_expression "((*local_20 & 1) == 0)" ( (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003c397;" goto statement_identifier ;)) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00081680 != puVar3) goto LAB_0003c3ab;" if (parenthesized_expression "(DAT_00081680 != puVar3)" ( (binary_expression "DAT_00081680 != puVar3" identifier != identifier) )) (goto_statement "goto LAB_0003c3ab;" goto statement_identifier ;)) })) (if_statement "if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;" if (parenthesized_expression "((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0)" ( (binary_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0" (parenthesized_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4)" ( (binary_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4" (pointer_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1)" * (cast_expression "(byte *)(*(int *)(local_20 + 0xc) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_20 + 0xc) + 1)" ( (binary_expression "*(int *)(local_20 + 0xc) + 1" (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c5d8;" goto statement_identifier ;)) (labeled_statement "LAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);" statement_identifier : (expression_statement "pbVar5 = *(byte **)(local_20 + 0xc);" (assignment_expression "pbVar5 = *(byte **)(local_20 + 0xc)" identifier = (pointer_expression "*(byte **)(local_20 + 0xc)" * (cast_expression "(byte **)(local_20 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0003c3a5;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" else (compound_statement "{\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" { (if_statement "if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }" if (parenthesized_expression "((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64))" ( (binary_expression "(local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)" (parenthesized_expression "(local_20 != (byte *)0x0)" ( (binary_expression "local_20 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_20 != PTR_DAT_00077f64)" ( (binary_expression "local_20 != PTR_DAT_00077f64" identifier != identifier) ))) )) (compound_statement "{\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }" { (expression_statement "fwrite(" frag ",1,6,param_1);" (call_expression "fwrite(" frag ",1,6,param_1)" identifier (argument_list "(" frag ",1,6,param_1)" ( (string_literal "" frag "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));" (call_expression "fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc))" identifier (argument_list "(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc))" ( identifier , (string_literal ""%08lx"" " string_content ") , (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (if_statement "if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" resolved",1,9,param_1);\n    }" { (expression_statement "fwrite(" resolved",1,9,param_1);" (call_expression "fwrite(" resolved",1,9,param_1)" identifier (argument_list "(" resolved",1,9,param_1)" ( (string_literal "" resolved"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "fwrite(" local",1,6,param_1);" (call_expression "fwrite(" local",1,6,param_1)" identifier (argument_list "(" local",1,6,param_1)" ( (string_literal "" local"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "local_20 = param_2;" (assignment_expression "local_20 = param_2" identifier = identifier) ;) (labeled_statement "LAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" statement_identifier : (if_statement "if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" if (parenthesized_expression "((*local_20 & 1) != 0)" ( (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" { (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c2b4;" goto statement_identifier ;) }))) (labeled_statement "LAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;" statement_identifier : (if_statement "if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;" if (parenthesized_expression "((local_20[1] & 2) != 0)" ( (binary_expression "(local_20[1] & 2) != 0" (parenthesized_expression "(local_20[1] & 2)" ( (binary_expression "local_20[1] & 2" (subscript_expression "local_20[1]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c5a0;" goto statement_identifier ;))) (labeled_statement "LAB_0003c397:\n    pbVar5 = local_20;" statement_identifier : (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" identifier = identifier) ;)) (if_statement "if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" if (parenthesized_expression "((local_20[1] & 4) != 0)" ( (binary_expression "(local_20[1] & 4) != 0" (parenthesized_expression "(local_20[1] & 4)" ( (binary_expression "local_20[1] & 4" (subscript_expression "local_20[1]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" { (labeled_statement "LAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);" statement_identifier : (expression_statement "fwrite(" weakrefd",1,9,param_1);" (call_expression "fwrite(" weakrefd",1,9,param_1)" identifier (argument_list "(" weakrefd",1,9,param_1)" ( (string_literal "" weakrefd"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" identifier = identifier) ;) (if_statement "if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" if (parenthesized_expression "((*local_20 & 1) != 0)" ( (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" { (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00081680 == puVar3) goto LAB_0003c73a;" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (goto_statement "goto LAB_0003c73a;" goto statement_identifier ;)) (goto_statement "goto LAB_0003c3ab;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" statement_identifier : (expression_statement "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" * (cast_expression "(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar5 + 4) + 0x10)" ( (binary_expression "*(int *)(pbVar5 + 4) + 0x10" (pointer_expression "*(int *)(pbVar5 + 4)" * (cast_expression "(int *)(pbVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + 4)" ( (binary_expression "pbVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;)) }))) (labeled_statement "LAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);" statement_identifier : (expression_statement "fprintf(param_1," %s",*puVar3);" (call_expression "fprintf(param_1," %s",*puVar3)" identifier (argument_list "(param_1," %s",*puVar3)" ( identifier , (string_literal "" %s"" " string_content ") , (pointer_expression "*puVar3" * identifier) ))) ;)) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) (if_statement "if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }" { (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" identifier = identifier) ;) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }" { (labeled_statement "LAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" statement_identifier : (expression_statement "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" * (cast_expression "(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar5 + 4) + 0x10)" ( (binary_expression "*(int *)(pbVar5 + 4) + 0x10" (pointer_expression "*(int *)(pbVar5 + 4)" * (cast_expression "(int *)(pbVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + 4)" ( (binary_expression "pbVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" statement_identifier : (if_statement "if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" if (parenthesized_expression "((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3))" ( (binary_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)" (parenthesized_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) && (parenthesized_expression "(DAT_000815e0 != puVar3)" ( (binary_expression "DAT_000815e0 != puVar3" identifier != identifier) ))) )) (compound_statement "{\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" { (expression_statement "uVar4 = FUN_00039e90();" (assignment_expression "uVar4 = FUN_00039e90()" identifier = (call_expression "FUN_00039e90()" identifier (argument_list "()" ( )))) ;) (expression_statement "fprintf(param_1," %lx",uVar4);" (call_expression "fprintf(param_1," %lx",uVar4)" identifier (argument_list "(param_1," %lx",uVar4)" ( identifier , (string_literal "" %lx"" " string_content ") , identifier ))) ;) }))) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;) })) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" if (parenthesized_expression "(7 < DAT_0008188c)" ( (binary_expression "7 < DAT_0008188c" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(local_20 + 4);" (assignment_expression "iVar2 = *(int *)(local_20 + 4)" identifier = (pointer_expression "*(int *)(local_20 + 4)" * (cast_expression "(int *)(local_20 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);" statement_identifier : (expression_statement "puVar3 = *(undefined4 **)(iVar2 + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(iVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x10)" * (cast_expression "(undefined4 **)(iVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" else (compound_statement "{\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" { (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }" if (parenthesized_expression "(puVar3 == DAT_00081680)" ( (binary_expression "puVar3 == DAT_00081680" identifier == identifier) )) (compound_statement "{\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }" { (expression_statement "pbVar5 = *(byte **)(local_20 + 0xc);" (assignment_expression "pbVar5 = *(byte **)(local_20 + 0xc)" identifier = (pointer_expression "*(byte **)(local_20 + 0xc)" * (cast_expression "(byte **)(local_20 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar5 & 4) != 0) goto LAB_0003c478;" if (parenthesized_expression "((*pbVar5 & 4) != 0)" ( (binary_expression "(*pbVar5 & 4) != 0" (parenthesized_expression "(*pbVar5 & 4)" ( (binary_expression "*pbVar5 & 4" (pointer_expression "*pbVar5" * identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c478;" goto statement_identifier ;)) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" if (parenthesized_expression "(7 < DAT_0008188c)" ( (binary_expression "7 < DAT_0008188c" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(pbVar5 + 4);" (assignment_expression "iVar2 = *(int *)(pbVar5 + 4)" identifier = (pointer_expression "*(int *)(pbVar5 + 4)" * (cast_expression "(int *)(pbVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + 4)" ( (binary_expression "pbVar5 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c49c;" goto statement_identifier ;) })) (if_statement "if ((bVar1 & 4) != 0) goto LAB_0003c3e2;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c3e2;" goto statement_identifier ;)) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" if (parenthesized_expression "(7 < DAT_0008188c)" ( (binary_expression "7 < DAT_0008188c" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) }))) (if_statement "if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;" if (parenthesized_expression "(puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "DAT_0008188c = DAT_0008188c + 1;" (assignment_expression "DAT_0008188c = DAT_0008188c + 1" identifier = (binary_expression "DAT_0008188c + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = &DAT_00056b65;" (assignment_expression "puVar7 = &DAT_00056b65" identifier = (pointer_expression "&DAT_00056b65" & identifier)) ;) (expression_statement "fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);" (call_expression "fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65)" identifier (argument_list "(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65)" ( identifier , (string_literal ""\n%*s<"" " escape_sequence string_content ") , (binary_expression "DAT_0008188c * 4" identifier * number_literal) , (pointer_expression "&DAT_00056b65" & identifier) ))) ;) (if_statement "if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" if (parenthesized_expression "((*local_20 & 1) == 0)" ( (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }" { (labeled_statement "LAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);" statement_identifier : (expression_statement "FUN_0003bd10(param_1,local_20 + 8);" (call_expression "FUN_0003bd10(param_1,local_20 + 8)" identifier (argument_list "(param_1,local_20 + 8)" ( identifier , (binary_expression "local_20 + 8" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" else (compound_statement "{\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" { (if_statement "if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }" if (parenthesized_expression "(*(undefined4 **)(local_20 + 4) == DAT_00081680)" ( (binary_expression "*(undefined4 **)(local_20 + 4) == DAT_00081680" (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }" { (expression_statement "local_20 = *(byte **)(local_20 + 0xc);" (assignment_expression "local_20 = *(byte **)(local_20 + 0xc)" identifier = (pointer_expression "*(byte **)(local_20 + 0xc)" * (cast_expression "(byte **)(local_20 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c7bb;" goto statement_identifier ;) })) (expression_statement "fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);" (call_expression "fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7)" identifier (argument_list "(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7)" ( identifier , (string_literal ""constant %lx"" " string_content ") , (pointer_expression "*(undefined4 *)(local_20 + 0x10)" * (cast_expression "(undefined4 *)(local_20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0x10)" ( (binary_expression "local_20 + 0x10" identifier + number_literal) )))) , identifier ))) ;) }))) (expression_statement "fputc(0x3e,param_1);" (call_expression "fputc(0x3e,param_1)" identifier (argument_list "(0x3e,param_1)" ( number_literal , identifier ))) ;) (expression_statement "DAT_0008188c = DAT_0008188c + -1;" (assignment_expression "DAT_0008188c = DAT_0008188c + -1" identifier = (binary_expression "DAT_0008188c + -1" identifier + number_literal)) ;) (labeled_statement "LAB_0003c418:\n  fflush(param_1);" statement_identifier : (expression_statement "fflush(param_1);" (call_expression "fflush(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid print_symbol_value_1(FILE *file,symbolS *sym)\n\n{\n  symbol_flags sVar1;\n  byte bVar2;\n  int iVar3;\n  segT paVar4;\n  valueT vVar5;\n  symbolS *psVar6;\n  asymbol *paVar7;\n  undefined *puVar8;\n  symbolS *local_20;\n  \n  paVar4 = (segT)sym->bsym;\n  if (((uint)sym->sy_flags & 1) == 0) {\nLAB_0003c1e6:\n    psVar6 = (symbolS *)paVar4->id;\n    if (psVar6 == (symbolS *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*(char *)&psVar6->sy_flags == '\0') {\n      psVar6 = (symbolS *)"(unnamed)";\n    }\n  }\n  else {\n    if (reg_section == paVar4) {\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }\n    psVar6 = (sym->sy_value).X_add_symbol;\n    if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    psVar6 = (symbolS *)"(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,(FILE *)file);\n  fprintf((FILE *)file,"%08lx",sym);\n  fprintf((FILE *)file," %s",psVar6);\n  bVar2 = *(byte *)&sym->sy_flags;\n  local_20 = sym;\n  if (((bVar2 & 1) == 0) || (local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)\n     ) {\n    if (local_20->sy_frag != &zero_address_frag) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",local_20->sy_frag);\n    }\n    bVar2 = *(byte *)&local_20->sy_flags;\n    if ((bVar2 & 2) != 0) {\n      fwrite(" written",1,8,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 4) == 0) {\n      if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 0x10) == 0) {\n      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    if (iVar3 != 0) {\n      fwrite(&DAT_0005a05f,1,5,(FILE *)file);\n    }\n    paVar4 = (segT)local_20->bsym;\n    if (((uint)local_20->sy_flags & 1) == 0) {\n      if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (reg_section == paVar4) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (reg_section == paVar4) {\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }\n    if ((bVar2 & 4) != 0) {\n      fwrite(" resolved",1,9,(FILE *)file);\n    }\n    fwrite(" local",1,6,(FILE *)file);\n    local_20 = sym;\nLAB_0003c29f:\n    if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    psVar6 = local_20;\n    if (((local_20->sy_flags).field_0x1 & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    paVar4 = psVar6->bsym->section;\n  }\nLAB_0003c3ab:\n  fprintf((FILE *)file," %s",paVar4->name);\n  sVar1 = local_20->sy_flags;\n  if (((uint)sVar1 & 1) == 0) {\n    psVar6 = local_20;\n    if (((uint)sVar1 & 4) != 0) {\nLAB_0003c478:\n      paVar4 = psVar6->bsym->section;\nLAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < indent_level) goto LAB_0003c418;\n    paVar7 = local_20->bsym;\nLAB_0003c49c:\n    paVar4 = paVar7->section;\n  }\n  else {\n    paVar4 = (segT)local_20->bsym;\n    if (paVar4 == reg_section) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }\n    if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < indent_level) goto LAB_0003c418;\n  }\n  if (paVar4 == (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  indent_level = indent_level + 1;\n  puVar8 = &DAT_00056b65;\n  fprintf((FILE *)file,"\n%*s<",indent_level * 4,&DAT_00056b65);\n  if (((uint)local_20->sy_flags & 1) == 0) {\nLAB_0003c7bb:\n    print_expr_1(file,&local_20->sy_value);\n  }\n  else {\n    if ((segT)local_20->bsym == reg_section) {\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }\n    fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);\n  }\n  fputc(0x3e,(FILE *)file);\n  indent_level = indent_level + -1;\nLAB_0003c418:\n  fflush((FILE *)file);\n  return;\n}\n\n" comment (function_definition "void print_symbol_value_1(FILE *file,symbolS *sym)\n\n{\n  symbol_flags sVar1;\n  byte bVar2;\n  int iVar3;\n  segT paVar4;\n  valueT vVar5;\n  symbolS *psVar6;\n  asymbol *paVar7;\n  undefined *puVar8;\n  symbolS *local_20;\n  \n  paVar4 = (segT)sym->bsym;\n  if (((uint)sym->sy_flags & 1) == 0) {\nLAB_0003c1e6:\n    psVar6 = (symbolS *)paVar4->id;\n    if (psVar6 == (symbolS *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*(char *)&psVar6->sy_flags == '\0') {\n      psVar6 = (symbolS *)"(unnamed)";\n    }\n  }\n  else {\n    if (reg_section == paVar4) {\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }\n    psVar6 = (sym->sy_value).X_add_symbol;\n    if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    psVar6 = (symbolS *)"(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,(FILE *)file);\n  fprintf((FILE *)file,"%08lx",sym);\n  fprintf((FILE *)file," %s",psVar6);\n  bVar2 = *(byte *)&sym->sy_flags;\n  local_20 = sym;\n  if (((bVar2 & 1) == 0) || (local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)\n     ) {\n    if (local_20->sy_frag != &zero_address_frag) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",local_20->sy_frag);\n    }\n    bVar2 = *(byte *)&local_20->sy_flags;\n    if ((bVar2 & 2) != 0) {\n      fwrite(" written",1,8,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 4) == 0) {\n      if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 0x10) == 0) {\n      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    if (iVar3 != 0) {\n      fwrite(&DAT_0005a05f,1,5,(FILE *)file);\n    }\n    paVar4 = (segT)local_20->bsym;\n    if (((uint)local_20->sy_flags & 1) == 0) {\n      if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (reg_section == paVar4) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (reg_section == paVar4) {\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }\n    if ((bVar2 & 4) != 0) {\n      fwrite(" resolved",1,9,(FILE *)file);\n    }\n    fwrite(" local",1,6,(FILE *)file);\n    local_20 = sym;\nLAB_0003c29f:\n    if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    psVar6 = local_20;\n    if (((local_20->sy_flags).field_0x1 & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    paVar4 = psVar6->bsym->section;\n  }\nLAB_0003c3ab:\n  fprintf((FILE *)file," %s",paVar4->name);\n  sVar1 = local_20->sy_flags;\n  if (((uint)sVar1 & 1) == 0) {\n    psVar6 = local_20;\n    if (((uint)sVar1 & 4) != 0) {\nLAB_0003c478:\n      paVar4 = psVar6->bsym->section;\nLAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < indent_level) goto LAB_0003c418;\n    paVar7 = local_20->bsym;\nLAB_0003c49c:\n    paVar4 = paVar7->section;\n  }\n  else {\n    paVar4 = (segT)local_20->bsym;\n    if (paVar4 == reg_section) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }\n    if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < indent_level) goto LAB_0003c418;\n  }\n  if (paVar4 == (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  indent_level = indent_level + 1;\n  puVar8 = &DAT_00056b65;\n  fprintf((FILE *)file,"\n%*s<",indent_level * 4,&DAT_00056b65);\n  if (((uint)local_20->sy_flags & 1) == 0) {\nLAB_0003c7bb:\n    print_expr_1(file,&local_20->sy_value);\n  }\n  else {\n    if ((segT)local_20->bsym == reg_section) {\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }\n    fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);\n  }\n  fputc(0x3e,(FILE *)file);\n  indent_level = indent_level + -1;\nLAB_0003c418:\n  fflush((FILE *)file);\n  return;\n}" primitive_type (function_declarator "print_symbol_value_1(FILE *file,symbolS *sym)" identifier (parameter_list "(FILE *file,symbolS *sym)" ( (parameter_declaration "FILE *file" type_identifier (pointer_declarator "*file" * identifier)) , (parameter_declaration "symbolS *sym" type_identifier (pointer_declarator "*sym" * identifier)) ))) (compound_statement "{\n  symbol_flags sVar1;\n  byte bVar2;\n  int iVar3;\n  segT paVar4;\n  valueT vVar5;\n  symbolS *psVar6;\n  asymbol *paVar7;\n  undefined *puVar8;\n  symbolS *local_20;\n  \n  paVar4 = (segT)sym->bsym;\n  if (((uint)sym->sy_flags & 1) == 0) {\nLAB_0003c1e6:\n    psVar6 = (symbolS *)paVar4->id;\n    if (psVar6 == (symbolS *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*(char *)&psVar6->sy_flags == '\0') {\n      psVar6 = (symbolS *)"(unnamed)";\n    }\n  }\n  else {\n    if (reg_section == paVar4) {\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }\n    psVar6 = (sym->sy_value).X_add_symbol;\n    if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    psVar6 = (symbolS *)"(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,(FILE *)file);\n  fprintf((FILE *)file,"%08lx",sym);\n  fprintf((FILE *)file," %s",psVar6);\n  bVar2 = *(byte *)&sym->sy_flags;\n  local_20 = sym;\n  if (((bVar2 & 1) == 0) || (local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)\n     ) {\n    if (local_20->sy_frag != &zero_address_frag) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",local_20->sy_frag);\n    }\n    bVar2 = *(byte *)&local_20->sy_flags;\n    if ((bVar2 & 2) != 0) {\n      fwrite(" written",1,8,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 4) == 0) {\n      if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 0x10) == 0) {\n      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    if (iVar3 != 0) {\n      fwrite(&DAT_0005a05f,1,5,(FILE *)file);\n    }\n    paVar4 = (segT)local_20->bsym;\n    if (((uint)local_20->sy_flags & 1) == 0) {\n      if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (reg_section == paVar4) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (reg_section == paVar4) {\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }\n    if ((bVar2 & 4) != 0) {\n      fwrite(" resolved",1,9,(FILE *)file);\n    }\n    fwrite(" local",1,6,(FILE *)file);\n    local_20 = sym;\nLAB_0003c29f:\n    if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    psVar6 = local_20;\n    if (((local_20->sy_flags).field_0x1 & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    paVar4 = psVar6->bsym->section;\n  }\nLAB_0003c3ab:\n  fprintf((FILE *)file," %s",paVar4->name);\n  sVar1 = local_20->sy_flags;\n  if (((uint)sVar1 & 1) == 0) {\n    psVar6 = local_20;\n    if (((uint)sVar1 & 4) != 0) {\nLAB_0003c478:\n      paVar4 = psVar6->bsym->section;\nLAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < indent_level) goto LAB_0003c418;\n    paVar7 = local_20->bsym;\nLAB_0003c49c:\n    paVar4 = paVar7->section;\n  }\n  else {\n    paVar4 = (segT)local_20->bsym;\n    if (paVar4 == reg_section) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }\n    if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < indent_level) goto LAB_0003c418;\n  }\n  if (paVar4 == (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  indent_level = indent_level + 1;\n  puVar8 = &DAT_00056b65;\n  fprintf((FILE *)file,"\n%*s<",indent_level * 4,&DAT_00056b65);\n  if (((uint)local_20->sy_flags & 1) == 0) {\nLAB_0003c7bb:\n    print_expr_1(file,&local_20->sy_value);\n  }\n  else {\n    if ((segT)local_20->bsym == reg_section) {\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }\n    fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);\n  }\n  fputc(0x3e,(FILE *)file);\n  indent_level = indent_level + -1;\nLAB_0003c418:\n  fflush((FILE *)file);\n  return;\n}" { (declaration "symbol_flags sVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "segT paVar4;" type_identifier identifier ;) (declaration "valueT vVar5;" type_identifier identifier ;) (declaration "symbolS *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "asymbol *paVar7;" type_identifier (pointer_declarator "*paVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "symbolS *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "paVar4 = (segT)sym->bsym;" (assignment_expression "paVar4 = (segT)sym->bsym" identifier = (cast_expression "(segT)sym->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "sym->bsym" identifier -> field_identifier))) ;) (if_statement "if (((uint)sym->sy_flags & 1) == 0) {\nLAB_0003c1e6:\n    psVar6 = (symbolS *)paVar4->id;\n    if (psVar6 == (symbolS *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*(char *)&psVar6->sy_flags == '\0') {\n      psVar6 = (symbolS *)"(unnamed)";\n    }\n  }\n  else {\n    if (reg_section == paVar4) {\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }\n    psVar6 = (sym->sy_value).X_add_symbol;\n    if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    psVar6 = (symbolS *)"(unnamed)";\n  }" if (parenthesized_expression "(((uint)sym->sy_flags & 1) == 0)" ( (binary_expression "((uint)sym->sy_flags & 1) == 0" (parenthesized_expression "((uint)sym->sy_flags & 1)" ( (binary_expression "(uint)sym->sy_flags & 1" (cast_expression "(uint)sym->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "sym->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0003c1e6:\n    psVar6 = (symbolS *)paVar4->id;\n    if (psVar6 == (symbolS *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*(char *)&psVar6->sy_flags == '\0') {\n      psVar6 = (symbolS *)"(unnamed)";\n    }\n  }" { (labeled_statement "LAB_0003c1e6:\n    psVar6 = (symbolS *)paVar4->id;" statement_identifier : (expression_statement "psVar6 = (symbolS *)paVar4->id;" (assignment_expression "psVar6 = (symbolS *)paVar4->id" identifier = (cast_expression "(symbolS *)paVar4->id" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar4->id" identifier -> field_identifier))) ;)) (if_statement "if (psVar6 == (symbolS *)0x0) goto LAB_0003c1d4;" if (parenthesized_expression "(psVar6 == (symbolS *)0x0)" ( (binary_expression "psVar6 == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c1d4;" goto statement_identifier ;)) (labeled_statement "LAB_0003c1ed:\n    if (*(char *)&psVar6->sy_flags == '\0') {\n      psVar6 = (symbolS *)"(unnamed)";\n    }" statement_identifier : (if_statement "if (*(char *)&psVar6->sy_flags == '\0') {\n      psVar6 = (symbolS *)"(unnamed)";\n    }" if (parenthesized_expression "(*(char *)&psVar6->sy_flags == '\0')" ( (binary_expression "*(char *)&psVar6->sy_flags == '\0'" (pointer_expression "*(char *)&psVar6->sy_flags" * (cast_expression "(char *)&psVar6->sy_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar6->sy_flags" & (field_expression "psVar6->sy_flags" identifier -> field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      psVar6 = (symbolS *)"(unnamed)";\n    }" { (expression_statement "psVar6 = (symbolS *)"(unnamed)";" (assignment_expression "psVar6 = (symbolS *)"(unnamed)"" identifier = (cast_expression "(symbolS *)"(unnamed)"" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""(unnamed)"" " string_content "))) ;) }))) }) (else_clause "else {\n    if (reg_section == paVar4) {\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }\n    psVar6 = (sym->sy_value).X_add_symbol;\n    if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    psVar6 = (symbolS *)"(unnamed)";\n  }" else (compound_statement "{\n    if (reg_section == paVar4) {\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }\n    psVar6 = (sym->sy_value).X_add_symbol;\n    if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    psVar6 = (symbolS *)"(unnamed)";\n  }" { (if_statement "if (reg_section == paVar4) {\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }" if (parenthesized_expression "(reg_section == paVar4)" ( (binary_expression "reg_section == paVar4" identifier == identifier) )) (compound_statement "{\n      paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;\n      goto LAB_0003c1e6;\n    }" { (expression_statement "paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym;" (assignment_expression "paVar4 = (segT)((sym->sy_value).X_op_symbol)->bsym" identifier = (field_expression "(segT)((sym->sy_value).X_op_symbol)->bsym" (call_expression "(segT)((sym->sy_value).X_op_symbol)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "((sym->sy_value).X_op_symbol)" ( (field_expression "(sym->sy_value).X_op_symbol" (parenthesized_expression "(sym->sy_value)" ( (field_expression "sym->sy_value" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier)) ;) (goto_statement "goto LAB_0003c1e6;" goto statement_identifier ;) })) (expression_statement "psVar6 = (sym->sy_value).X_add_symbol;" (assignment_expression "psVar6 = (sym->sy_value).X_add_symbol" identifier = (field_expression "(sym->sy_value).X_add_symbol" (parenthesized_expression "(sym->sy_value)" ( (field_expression "sym->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (psVar6 != (symbolS *)0x0) goto LAB_0003c1ed;" if (parenthesized_expression "(psVar6 != (symbolS *)0x0)" ( (binary_expression "psVar6 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c1ed;" goto statement_identifier ;)) (labeled_statement "LAB_0003c1d4:\n    psVar6 = (symbolS *)"(unnamed)";" statement_identifier : (expression_statement "psVar6 = (symbolS *)"(unnamed)";" (assignment_expression "psVar6 = (symbolS *)"(unnamed)"" identifier = (cast_expression "(symbolS *)"(unnamed)"" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""(unnamed)"" " string_content "))) ;)) }))) (expression_statement "fwrite(&DAT_0005a011,1,4,(FILE *)file);" (call_expression "fwrite(&DAT_0005a011,1,4,(FILE *)file)" identifier (argument_list "(&DAT_0005a011,1,4,(FILE *)file)" ( (pointer_expression "&DAT_0005a011" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "fprintf((FILE *)file,"%08lx",sym);" (call_expression "fprintf((FILE *)file,"%08lx",sym)" identifier (argument_list "((FILE *)file,"%08lx",sym)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf((FILE *)file," %s",psVar6);" (call_expression "fprintf((FILE *)file," %s",psVar6)" identifier (argument_list "((FILE *)file," %s",psVar6)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" %s"" " string_content ") , identifier ))) ;) (expression_statement "bVar2 = *(byte *)&sym->sy_flags;" (assignment_expression "bVar2 = *(byte *)&sym->sy_flags" identifier = (pointer_expression "*(byte *)&sym->sy_flags" * (cast_expression "(byte *)&sym->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sym->sy_flags" & (field_expression "sym->sy_flags" identifier -> field_identifier))))) ;) (expression_statement "local_20 = sym;" (assignment_expression "local_20 = sym" identifier = identifier) ;) (if_statement "if (((bVar2 & 1) == 0) || (local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)\n     ) {\n    if (local_20->sy_frag != &zero_address_frag) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",local_20->sy_frag);\n    }\n    bVar2 = *(byte *)&local_20->sy_flags;\n    if ((bVar2 & 2) != 0) {\n      fwrite(" written",1,8,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 4) == 0) {\n      if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 0x10) == 0) {\n      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    if (iVar3 != 0) {\n      fwrite(&DAT_0005a05f,1,5,(FILE *)file);\n    }\n    paVar4 = (segT)local_20->bsym;\n    if (((uint)local_20->sy_flags & 1) == 0) {\n      if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (reg_section == paVar4) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (reg_section == paVar4) {\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }\n    if ((bVar2 & 4) != 0) {\n      fwrite(" resolved",1,9,(FILE *)file);\n    }\n    fwrite(" local",1,6,(FILE *)file);\n    local_20 = sym;\nLAB_0003c29f:\n    if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    psVar6 = local_20;\n    if (((local_20->sy_flags).field_0x1 & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    paVar4 = psVar6->bsym->section;\n  }" if (parenthesized_expression "(((bVar2 & 1) == 0) || (local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)\n     )" ( (binary_expression "((bVar2 & 1) == 0) || (local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)" (parenthesized_expression "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section)" ( (comma_expression "local_20 = (sym->sy_value).X_op_symbol, (segT)sym->bsym == reg_section" (assignment_expression "local_20 = (sym->sy_value).X_op_symbol" identifier = (field_expression "(sym->sy_value).X_op_symbol" (parenthesized_expression "(sym->sy_value)" ( (field_expression "sym->sy_value" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(segT)sym->bsym == reg_section" (cast_expression "(segT)sym->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "sym->bsym" identifier -> field_identifier)) == identifier)) ))) )) (compound_statement "{\n    if (local_20->sy_frag != &zero_address_frag) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",local_20->sy_frag);\n    }\n    bVar2 = *(byte *)&local_20->sy_flags;\n    if ((bVar2 & 2) != 0) {\n      fwrite(" written",1,8,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 4) == 0) {\n      if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }\n    if ((bVar2 & 0x10) == 0) {\n      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    if (iVar3 != 0) {\n      fwrite(&DAT_0005a05f,1,5,(FILE *)file);\n    }\n    paVar4 = (segT)local_20->bsym;\n    if (((uint)local_20->sy_flags & 1) == 0) {\n      if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (reg_section == paVar4) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (reg_section == paVar4) {\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }\n  }" { (if_statement "if (local_20->sy_frag != &zero_address_frag) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",local_20->sy_frag);\n    }" if (parenthesized_expression "(local_20->sy_frag != &zero_address_frag)" ( (binary_expression "local_20->sy_frag != &zero_address_frag" (field_expression "local_20->sy_frag" identifier -> field_identifier) != (pointer_expression "&zero_address_frag" & identifier)) )) (compound_statement "{\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",local_20->sy_frag);\n    }" { (expression_statement "fwrite(" frag ",1,6,(FILE *)file);" (call_expression "fwrite(" frag ",1,6,(FILE *)file)" identifier (argument_list "(" frag ",1,6,(FILE *)file)" ( (string_literal "" frag "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "fprintf((FILE *)file,"%08lx",local_20->sy_frag);" (call_expression "fprintf((FILE *)file,"%08lx",local_20->sy_frag)" identifier (argument_list "((FILE *)file,"%08lx",local_20->sy_frag)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%08lx"" " string_content ") , (field_expression "local_20->sy_frag" identifier -> field_identifier) ))) ;) })) (expression_statement "bVar2 = *(byte *)&local_20->sy_flags;" (assignment_expression "bVar2 = *(byte *)&local_20->sy_flags" identifier = (pointer_expression "*(byte *)&local_20->sy_flags" * (cast_expression "(byte *)&local_20->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_20->sy_flags" & (field_expression "local_20->sy_flags" identifier -> field_identifier))))) ;) (if_statement "if ((bVar2 & 2) != 0) {\n      fwrite(" written",1,8,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }" if (parenthesized_expression "((bVar2 & 2) != 0)" ( (binary_expression "(bVar2 & 2) != 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" written",1,8,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }" { (expression_statement "fwrite(" written",1,8,(FILE *)file);" (call_expression "fwrite(" written",1,8,(FILE *)file)" identifier (argument_list "(" written",1,8,(FILE *)file)" ( (string_literal "" written"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bVar2 = *(byte *)&local_20->sy_flags;" (assignment_expression "bVar2 = *(byte *)&local_20->sy_flags" identifier = (pointer_expression "*(byte *)&local_20->sy_flags" * (cast_expression "(byte *)&local_20->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_20->sy_flags" & (field_expression "local_20->sy_flags" identifier -> field_identifier))))) ;) })) (if_statement "if ((bVar2 & 4) == 0) {\n      if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }" if (parenthesized_expression "((bVar2 & 4) == 0)" ( (binary_expression "(bVar2 & 4) == 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }\n    }" { (if_statement "if ((bVar2 & 8) != 0) {\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }" if (parenthesized_expression "((bVar2 & 8) != 0)" ( (binary_expression "(bVar2 & 8) != 0" (parenthesized_expression "(bVar2 & 8)" ( (binary_expression "bVar2 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        fwrite(" resolving",1,10,(FILE *)file);\n        bVar2 = *(byte *)&local_20->sy_flags;\n      }" { (expression_statement "fwrite(" resolving",1,10,(FILE *)file);" (call_expression "fwrite(" resolving",1,10,(FILE *)file)" identifier (argument_list "(" resolving",1,10,(FILE *)file)" ( (string_literal "" resolving"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bVar2 = *(byte *)&local_20->sy_flags;" (assignment_expression "bVar2 = *(byte *)&local_20->sy_flags" identifier = (pointer_expression "*(byte *)&local_20->sy_flags" * (cast_expression "(byte *)&local_20->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_20->sy_flags" & (field_expression "local_20->sy_flags" identifier -> field_identifier))))) ;) })) }) (else_clause "else {\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }" else (compound_statement "{\n      fwrite(" resolved",1,9,(FILE *)file);\n      bVar2 = *(byte *)&local_20->sy_flags;\n    }" { (expression_statement "fwrite(" resolved",1,9,(FILE *)file);" (call_expression "fwrite(" resolved",1,9,(FILE *)file)" identifier (argument_list "(" resolved",1,9,(FILE *)file)" ( (string_literal "" resolved"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bVar2 = *(byte *)&local_20->sy_flags;" (assignment_expression "bVar2 = *(byte *)&local_20->sy_flags" identifier = (pointer_expression "*(byte *)&local_20->sy_flags" * (cast_expression "(byte *)&local_20->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_20->sy_flags" & (field_expression "local_20->sy_flags" identifier -> field_identifier))))) ;) }))) (if_statement "if ((bVar2 & 0x10) == 0) {\n      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);\n      iVar3 = S_IS_WEAK(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\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      if ((bVar2 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);\n      iVar3 = S_IS_WEAK(local_20);\n    }" { (if_statement "if ((bVar2 & 0x20) == 0) goto LAB_0003c325;" if (parenthesized_expression "((bVar2 & 0x20) == 0)" ( (binary_expression "(bVar2 & 0x20) == 0" (parenthesized_expression "(bVar2 & 0x20)" ( (binary_expression "bVar2 & 0x20" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003c325;" goto statement_identifier ;)) (labeled_statement "LAB_0003c4c8:\n      fwrite(" used",1,5,(FILE *)file);" statement_identifier : (expression_statement "fwrite(" used",1,5,(FILE *)file);" (call_expression "fwrite(" used",1,5,(FILE *)file)" identifier (argument_list "(" used",1,5,(FILE *)file)" ( (string_literal "" used"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "iVar3 = S_IS_LOCAL(local_20);" (assignment_expression "iVar3 = S_IS_LOCAL(local_20)" identifier = (call_expression "S_IS_LOCAL(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0003c4f0;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c4f0;" goto statement_identifier ;)) (labeled_statement "LAB_0003c339:\n      iVar3 = S_IS_EXTERNAL(local_20);" statement_identifier : (expression_statement "iVar3 = S_IS_EXTERNAL(local_20);" (assignment_expression "iVar3 = S_IS_EXTERNAL(local_20)" identifier = (call_expression "S_IS_EXTERNAL(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0003c34d;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c34d;" goto statement_identifier ;)) (labeled_statement "LAB_0003c518:\n      fwrite(" extern",1,7,(FILE *)file);" statement_identifier : (expression_statement "fwrite(" extern",1,7,(FILE *)file);" (call_expression "fwrite(" extern",1,7,(FILE *)file)" identifier (argument_list "(" extern",1,7,(FILE *)file)" ( (string_literal "" extern"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "iVar3 = S_IS_WEAK(local_20);" (assignment_expression "iVar3 = S_IS_WEAK(local_20)" identifier = (call_expression "S_IS_WEAK(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) }) (else_clause "else {\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\n    }" else (compound_statement "{\n      fwrite(" used-in-reloc",1,0xe,(FILE *)file);\n      if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);\n      if (iVar3 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);\n      iVar3 = S_IS_EXTERNAL(local_20);\n      if (iVar3 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);\n    }" { (expression_statement "fwrite(" used-in-reloc",1,0xe,(FILE *)file);" (call_expression "fwrite(" used-in-reloc",1,0xe,(FILE *)file)" identifier (argument_list "(" used-in-reloc",1,0xe,(FILE *)file)" ( (string_literal "" used-in-reloc"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (((uint)local_20->sy_flags & 0x20) != 0) goto LAB_0003c4c8;" if (parenthesized_expression "(((uint)local_20->sy_flags & 0x20) != 0)" ( (binary_expression "((uint)local_20->sy_flags & 0x20) != 0" (parenthesized_expression "((uint)local_20->sy_flags & 0x20)" ( (binary_expression "(uint)local_20->sy_flags & 0x20" (cast_expression "(uint)local_20->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_20->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c4c8;" goto statement_identifier ;)) (labeled_statement "LAB_0003c325:\n      iVar3 = S_IS_LOCAL(local_20);" statement_identifier : (expression_statement "iVar3 = S_IS_LOCAL(local_20);" (assignment_expression "iVar3 = S_IS_LOCAL(local_20)" identifier = (call_expression "S_IS_LOCAL(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0003c339;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c339;" goto statement_identifier ;)) (labeled_statement "LAB_0003c4f0:\n      fwrite(" local",1,6,(FILE *)file);" statement_identifier : (expression_statement "fwrite(" local",1,6,(FILE *)file);" (call_expression "fwrite(" local",1,6,(FILE *)file)" identifier (argument_list "(" local",1,6,(FILE *)file)" ( (string_literal "" local"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "iVar3 = S_IS_EXTERNAL(local_20);" (assignment_expression "iVar3 = S_IS_EXTERNAL(local_20)" identifier = (call_expression "S_IS_EXTERNAL(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0003c518;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c518;" goto statement_identifier ;)) (labeled_statement "LAB_0003c34d:\n      iVar3 = S_IS_WEAK(local_20);" statement_identifier : (expression_statement "iVar3 = S_IS_WEAK(local_20);" (assignment_expression "iVar3 = S_IS_WEAK(local_20)" identifier = (call_expression "S_IS_WEAK(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) }))) (if_statement "if (iVar3 != 0) {\n      fwrite(&DAT_0005a05f,1,5,(FILE *)file);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0005a05f,1,5,(FILE *)file);\n    }" { (expression_statement "fwrite(&DAT_0005a05f,1,5,(FILE *)file);" (call_expression "fwrite(&DAT_0005a05f,1,5,(FILE *)file)" identifier (argument_list "(&DAT_0005a05f,1,5,(FILE *)file)" ( (pointer_expression "&DAT_0005a05f" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "paVar4 = (segT)local_20->bsym;" (assignment_expression "paVar4 = (segT)local_20->bsym" identifier = (cast_expression "(segT)local_20->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "local_20->bsym" identifier -> field_identifier))) ;) (if_statement "if (((uint)local_20->sy_flags & 1) == 0) {\n      if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" if (parenthesized_expression "(((uint)local_20->sy_flags & 1) == 0)" ( (binary_expression "((uint)local_20->sy_flags & 1) == 0" (parenthesized_expression "((uint)local_20->sy_flags & 1)" ( (binary_expression "(uint)local_20->sy_flags & 1" (cast_expression "(uint)local_20->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_20->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" { (if_statement "if (((uint)paVar4->next & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" if (parenthesized_expression "(((uint)paVar4->next & 4) != 0)" ( (binary_expression "((uint)paVar4->next & 4) != 0" (parenthesized_expression "((uint)paVar4->next & 4)" ( (binary_expression "(uint)paVar4->next & 4" (cast_expression "(uint)paVar4->next" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar4->next" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);\n        paVar4 = (segT)local_20->bsym;\n        if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" { (labeled_statement "LAB_0003c6e0:\n        fwrite(" debug",1,6,(FILE *)file);" statement_identifier : (expression_statement "fwrite(" debug",1,6,(FILE *)file);" (call_expression "fwrite(" debug",1,6,(FILE *)file)" identifier (argument_list "(" debug",1,6,(FILE *)file)" ( (string_literal "" debug"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "paVar4 = (segT)local_20->bsym;" (assignment_expression "paVar4 = (segT)local_20->bsym" identifier = (cast_expression "(segT)local_20->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "local_20->bsym" identifier -> field_identifier))) ;) (if_statement "if (((uint)local_20->sy_flags & 1) != 0) {\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" if (parenthesized_expression "(((uint)local_20->sy_flags & 1) != 0)" ( (binary_expression "((uint)local_20->sy_flags & 1) != 0" (parenthesized_expression "((uint)local_20->sy_flags & 1)" ( (binary_expression "(uint)local_20->sy_flags & 1" (cast_expression "(uint)local_20->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_20->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n          if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" { (if_statement "if (paVar4 == reg_section) {\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }" if (parenthesized_expression "(paVar4 == reg_section)" ( (binary_expression "paVar4 == reg_section" identifier == identifier) )) (compound_statement "{\n            psVar6 = (local_20->sy_value).X_op_symbol;\n            goto LAB_0003c790;\n          }" { (expression_statement "psVar6 = (local_20->sy_value).X_op_symbol;" (assignment_expression "psVar6 = (local_20->sy_value).X_op_symbol" identifier = (field_expression "(local_20->sy_value).X_op_symbol" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_0003c790;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003c440;" goto statement_identifier ;) })) })) (if_statement "if (paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" if (parenthesized_expression "(paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "paVar4->prev != (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (field_expression "paVar4->prev" identifier -> field_identifier) != (cast_expression "(bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c454;" goto statement_identifier ;)) (goto_statement "goto LAB_0003c38d;" goto statement_identifier ;) })) (if_statement "if (reg_section == paVar4) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);\n      goto LAB_0003c29f;\n    }" if (parenthesized_expression "(reg_section == paVar4)" ( (binary_expression "reg_section == paVar4" identifier == identifier) )) (compound_statement "{\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);\n      goto LAB_0003c29f;\n    }" { (expression_statement "psVar6 = (local_20->sy_value).X_op_symbol;" (assignment_expression "psVar6 = (local_20->sy_value).X_op_symbol" identifier = (field_expression "(local_20->sy_value).X_op_symbol" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((psVar6->bsym->flags & 4) != 0) goto LAB_0003c6e0;" if (parenthesized_expression "((psVar6->bsym->flags & 4) != 0)" ( (binary_expression "(psVar6->bsym->flags & 4) != 0" (parenthesized_expression "(psVar6->bsym->flags & 4)" ( (binary_expression "psVar6->bsym->flags & 4" (field_expression "psVar6->bsym->flags" (field_expression "psVar6->bsym" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c6e0;" goto statement_identifier ;)) (labeled_statement "LAB_0003c790:\n      if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;" statement_identifier : (if_statement "if (psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))\n      goto LAB_0003c29f;" if (parenthesized_expression "(psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "psVar6->bsym->section == (bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (field_expression "psVar6->bsym->section" (field_expression "psVar6->bsym" identifier -> field_identifier) -> field_identifier) == (cast_expression "(bfd_section *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c29f;" goto statement_identifier ;))) (labeled_statement "LAB_0003c454:\n      fwrite(" defined",1,8,(FILE *)file);" statement_identifier : (expression_statement "fwrite(" defined",1,8,(FILE *)file);" (call_expression "fwrite(" defined",1,8,(FILE *)file)" identifier (argument_list "(" defined",1,8,(FILE *)file)" ( (string_literal "" defined"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (goto_statement "goto LAB_0003c29f;" goto statement_identifier ;) })) (labeled_statement "LAB_0003c440:\n    if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" statement_identifier : (if_statement "if (paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" if (parenthesized_expression "(paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier != (call_expression "(segT)(PTR__bfd_std_section_00077fa0 + 0xa8)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c454;" goto statement_identifier ;))) (labeled_statement "LAB_0003c2b4:\n    if (reg_section == paVar4) {\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }" statement_identifier : (if_statement "if (reg_section == paVar4) {\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }" if (parenthesized_expression "(reg_section == paVar4)" ( (binary_expression "reg_section == paVar4" identifier == identifier) )) (compound_statement "{\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }\n      if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c3a5;\n    }" { (if_statement "if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }" if (parenthesized_expression "(((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0)" ( (binary_expression "((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0" (parenthesized_expression "((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2)" ( (binary_expression "(((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2" (field_expression "(((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1" (parenthesized_expression "(((local_20->sy_value).X_op_symbol)->sy_flags)" ( (field_expression "((local_20->sy_value).X_op_symbol)->sy_flags" (parenthesized_expression "((local_20->sy_value).X_op_symbol)" ( (field_expression "(local_20->sy_value).X_op_symbol" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);\n        if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section != paVar4) goto LAB_0003c3ab;\n      }" { (labeled_statement "LAB_0003c5a0:\n        fwrite(" weakrefr",1,9,(FILE *)file);" statement_identifier : (expression_statement "fwrite(" weakrefr",1,9,(FILE *)file);" (call_expression "fwrite(" weakrefr",1,9,(FILE *)file)" identifier (argument_list "(" weakrefr",1,9,(FILE *)file)" ( (string_literal "" weakrefr"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (if_statement "if (((uint)local_20->sy_flags & 1) == 0) goto LAB_0003c397;" if (parenthesized_expression "(((uint)local_20->sy_flags & 1) == 0)" ( (binary_expression "((uint)local_20->sy_flags & 1) == 0" (parenthesized_expression "((uint)local_20->sy_flags & 1)" ( (binary_expression "(uint)local_20->sy_flags & 1" (cast_expression "(uint)local_20->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_20->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003c397;" goto statement_identifier ;)) (expression_statement "paVar4 = (segT)local_20->bsym;" (assignment_expression "paVar4 = (segT)local_20->bsym" identifier = (cast_expression "(segT)local_20->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "local_20->bsym" identifier -> field_identifier))) ;) (if_statement "if (reg_section != paVar4) goto LAB_0003c3ab;" if (parenthesized_expression "(reg_section != paVar4)" ( (binary_expression "reg_section != paVar4" identifier != identifier) )) (goto_statement "goto LAB_0003c3ab;" goto statement_identifier ;)) })) (if_statement "if (((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;" if (parenthesized_expression "(((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0)" ( (binary_expression "((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0" (parenthesized_expression "((((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4)" ( (binary_expression "(((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4" (field_expression "(((local_20->sy_value).X_op_symbol)->sy_flags).field_0x1" (parenthesized_expression "(((local_20->sy_value).X_op_symbol)->sy_flags)" ( (field_expression "((local_20->sy_value).X_op_symbol)->sy_flags" (parenthesized_expression "((local_20->sy_value).X_op_symbol)" ( (field_expression "(local_20->sy_value).X_op_symbol" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c5d8;" goto statement_identifier ;)) (labeled_statement "LAB_0003c73a:\n      psVar6 = (local_20->sy_value).X_op_symbol;" statement_identifier : (expression_statement "psVar6 = (local_20->sy_value).X_op_symbol;" (assignment_expression "psVar6 = (local_20->sy_value).X_op_symbol" identifier = (field_expression "(local_20->sy_value).X_op_symbol" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier)) ;)) (goto_statement "goto LAB_0003c3a5;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }\n    if ((bVar2 & 4) != 0) {\n      fwrite(" resolved",1,9,(FILE *)file);\n    }\n    fwrite(" local",1,6,(FILE *)file);\n    local_20 = sym;\nLAB_0003c29f:\n    if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    psVar6 = local_20;\n    if (((local_20->sy_flags).field_0x1 & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    paVar4 = psVar6->bsym->section;\n  }" else (compound_statement "{\n    if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }\n    if ((bVar2 & 4) != 0) {\n      fwrite(" resolved",1,9,(FILE *)file);\n    }\n    fwrite(" local",1,6,(FILE *)file);\n    local_20 = sym;\nLAB_0003c29f:\n    if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    psVar6 = local_20;\n    if (((local_20->sy_flags).field_0x1 & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    paVar4 = psVar6->bsym->section;\n  }" { (if_statement "if ((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)) {\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }" if (parenthesized_expression "((local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64))" ( (binary_expression "(local_20 != (symbolS *)0x0) && (local_20 != (symbolS *)PTR_zero_address_frag_00077f64)" (parenthesized_expression "(local_20 != (symbolS *)0x0)" ( (binary_expression "local_20 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_20 != (symbolS *)PTR_zero_address_frag_00077f64)" ( (binary_expression "local_20 != (symbolS *)PTR_zero_address_frag_00077f64" identifier != (cast_expression "(symbolS *)PTR_zero_address_frag_00077f64" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) )) (compound_statement "{\n      fwrite(" frag ",1,6,(FILE *)file);\n      fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);\n      bVar2 = *(byte *)&sym->sy_flags;\n    }" { (expression_statement "fwrite(" frag ",1,6,(FILE *)file);" (call_expression "fwrite(" frag ",1,6,(FILE *)file)" identifier (argument_list "(" frag ",1,6,(FILE *)file)" ( (string_literal "" frag "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol);" (call_expression "fprintf((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol)" identifier (argument_list "((FILE *)file,"%08lx",(sym->sy_value).X_op_symbol)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%08lx"" " string_content ") , (field_expression "(sym->sy_value).X_op_symbol" (parenthesized_expression "(sym->sy_value)" ( (field_expression "sym->sy_value" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "bVar2 = *(byte *)&sym->sy_flags;" (assignment_expression "bVar2 = *(byte *)&sym->sy_flags" identifier = (pointer_expression "*(byte *)&sym->sy_flags" * (cast_expression "(byte *)&sym->sy_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sym->sy_flags" & (field_expression "sym->sy_flags" identifier -> field_identifier))))) ;) })) (if_statement "if ((bVar2 & 4) != 0) {\n      fwrite(" resolved",1,9,(FILE *)file);\n    }" if (parenthesized_expression "((bVar2 & 4) != 0)" ( (binary_expression "(bVar2 & 4) != 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" resolved",1,9,(FILE *)file);\n    }" { (expression_statement "fwrite(" resolved",1,9,(FILE *)file);" (call_expression "fwrite(" resolved",1,9,(FILE *)file)" identifier (argument_list "(" resolved",1,9,(FILE *)file)" ( (string_literal "" resolved"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "fwrite(" local",1,6,(FILE *)file);" (call_expression "fwrite(" local",1,6,(FILE *)file)" identifier (argument_list "(" local",1,6,(FILE *)file)" ( (string_literal "" local"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_20 = sym;" (assignment_expression "local_20 = sym" identifier = identifier) ;) (labeled_statement "LAB_0003c29f:\n    if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }" statement_identifier : (if_statement "if (((uint)local_20->sy_flags & 1) != 0) {\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }" if (parenthesized_expression "(((uint)local_20->sy_flags & 1) != 0)" ( (binary_expression "((uint)local_20->sy_flags & 1) != 0" (parenthesized_expression "((uint)local_20->sy_flags & 1)" ( (binary_expression "(uint)local_20->sy_flags & 1" (cast_expression "(uint)local_20->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_20->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n      paVar4 = (segT)local_20->bsym;\n      goto LAB_0003c2b4;\n    }" { (expression_statement "paVar4 = (segT)local_20->bsym;" (assignment_expression "paVar4 = (segT)local_20->bsym" identifier = (cast_expression "(segT)local_20->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "local_20->bsym" identifier -> field_identifier))) ;) (goto_statement "goto LAB_0003c2b4;" goto statement_identifier ;) }))) (labeled_statement "LAB_0003c38d:\n    if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;" statement_identifier : (if_statement "if (((local_20->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;" if (parenthesized_expression "(((local_20->sy_flags).field_0x1 & 2) != 0)" ( (binary_expression "((local_20->sy_flags).field_0x1 & 2) != 0" (parenthesized_expression "((local_20->sy_flags).field_0x1 & 2)" ( (binary_expression "(local_20->sy_flags).field_0x1 & 2" (field_expression "(local_20->sy_flags).field_0x1" (parenthesized_expression "(local_20->sy_flags)" ( (field_expression "local_20->sy_flags" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c5a0;" goto statement_identifier ;))) (labeled_statement "LAB_0003c397:\n    psVar6 = local_20;" statement_identifier : (expression_statement "psVar6 = local_20;" (assignment_expression "psVar6 = local_20" identifier = identifier) ;)) (if_statement "if (((local_20->sy_flags).field_0x1 & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" if (parenthesized_expression "(((local_20->sy_flags).field_0x1 & 4) != 0)" ( (binary_expression "((local_20->sy_flags).field_0x1 & 4) != 0" (parenthesized_expression "((local_20->sy_flags).field_0x1 & 4)" ( (binary_expression "(local_20->sy_flags).field_0x1 & 4" (field_expression "(local_20->sy_flags).field_0x1" (parenthesized_expression "(local_20->sy_flags)" ( (field_expression "local_20->sy_flags" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);\n      psVar6 = local_20;\n      if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" { (labeled_statement "LAB_0003c5d8:\n      fwrite(" weakrefd",1,9,(FILE *)file);" statement_identifier : (expression_statement "fwrite(" weakrefd",1,9,(FILE *)file);" (call_expression "fwrite(" weakrefd",1,9,(FILE *)file)" identifier (argument_list "(" weakrefd",1,9,(FILE *)file)" ( (string_literal "" weakrefd"" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "psVar6 = local_20;" (assignment_expression "psVar6 = local_20" identifier = identifier) ;) (if_statement "if (((uint)local_20->sy_flags & 1) != 0) {\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" if (parenthesized_expression "(((uint)local_20->sy_flags & 1) != 0)" ( (binary_expression "((uint)local_20->sy_flags & 1) != 0" (parenthesized_expression "((uint)local_20->sy_flags & 1)" ( (binary_expression "(uint)local_20->sy_flags & 1" (cast_expression "(uint)local_20->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_20->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n        paVar4 = (segT)local_20->bsym;\n        if (reg_section == paVar4) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" { (expression_statement "paVar4 = (segT)local_20->bsym;" (assignment_expression "paVar4 = (segT)local_20->bsym" identifier = (cast_expression "(segT)local_20->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "local_20->bsym" identifier -> field_identifier))) ;) (if_statement "if (reg_section == paVar4) goto LAB_0003c73a;" if (parenthesized_expression "(reg_section == paVar4)" ( (binary_expression "reg_section == paVar4" identifier == identifier) )) (goto_statement "goto LAB_0003c73a;" goto statement_identifier ;)) (goto_statement "goto LAB_0003c3ab;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0003c3a5:\n    paVar4 = psVar6->bsym->section;" statement_identifier : (expression_statement "paVar4 = psVar6->bsym->section;" (assignment_expression "paVar4 = psVar6->bsym->section" identifier = (field_expression "psVar6->bsym->section" (field_expression "psVar6->bsym" identifier -> field_identifier) -> field_identifier)) ;)) }))) (labeled_statement "LAB_0003c3ab:\n  fprintf((FILE *)file," %s",paVar4->name);" statement_identifier : (expression_statement "fprintf((FILE *)file," %s",paVar4->name);" (call_expression "fprintf((FILE *)file," %s",paVar4->name)" identifier (argument_list "((FILE *)file," %s",paVar4->name)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" %s"" " string_content ") , (field_expression "paVar4->name" identifier -> field_identifier) ))) ;)) (expression_statement "sVar1 = local_20->sy_flags;" (assignment_expression "sVar1 = local_20->sy_flags" identifier = (field_expression "local_20->sy_flags" identifier -> field_identifier)) ;) (if_statement "if (((uint)sVar1 & 1) == 0) {\n    psVar6 = local_20;\n    if (((uint)sVar1 & 4) != 0) {\nLAB_0003c478:\n      paVar4 = psVar6->bsym->section;\nLAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < indent_level) goto LAB_0003c418;\n    paVar7 = local_20->bsym;\nLAB_0003c49c:\n    paVar4 = paVar7->section;\n  }\n  else {\n    paVar4 = (segT)local_20->bsym;\n    if (paVar4 == reg_section) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }\n    if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < indent_level) goto LAB_0003c418;\n  }" if (parenthesized_expression "(((uint)sVar1 & 1) == 0)" ( (binary_expression "((uint)sVar1 & 1) == 0" (parenthesized_expression "((uint)sVar1 & 1)" ( (binary_expression "(uint)sVar1 & 1" (cast_expression "(uint)sVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    psVar6 = local_20;\n    if (((uint)sVar1 & 4) != 0) {\nLAB_0003c478:\n      paVar4 = psVar6->bsym->section;\nLAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < indent_level) goto LAB_0003c418;\n    paVar7 = local_20->bsym;\nLAB_0003c49c:\n    paVar4 = paVar7->section;\n  }" { (expression_statement "psVar6 = local_20;" (assignment_expression "psVar6 = local_20" identifier = identifier) ;) (if_statement "if (((uint)sVar1 & 4) != 0) {\nLAB_0003c478:\n      paVar4 = psVar6->bsym->section;\nLAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }\n      goto LAB_0003c418;\n    }" if (parenthesized_expression "(((uint)sVar1 & 4) != 0)" ( (binary_expression "((uint)sVar1 & 4) != 0" (parenthesized_expression "((uint)sVar1 & 4)" ( (binary_expression "(uint)sVar1 & 4" (cast_expression "(uint)sVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c478:\n      paVar4 = psVar6->bsym->section;\nLAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }\n      goto LAB_0003c418;\n    }" { (labeled_statement "LAB_0003c478:\n      paVar4 = psVar6->bsym->section;" statement_identifier : (expression_statement "paVar4 = psVar6->bsym->section;" (assignment_expression "paVar4 = psVar6->bsym->section" identifier = (field_expression "psVar6->bsym->section" (field_expression "psVar6->bsym" identifier -> field_identifier) -> field_identifier)) ;)) (labeled_statement "LAB_0003c3e2:\n      if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }" statement_identifier : (if_statement "if ((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)) {\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }" if (parenthesized_expression "((paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4))" ( (binary_expression "(paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) && (expr_section != paVar4)" (parenthesized_expression "(paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "paVar4 != (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier != (call_expression "(segT)(PTR__bfd_std_section_00077fa0 + 0xa8)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) && (parenthesized_expression "(expr_section != paVar4)" ( (binary_expression "expr_section != paVar4" identifier != identifier) ))) )) (compound_statement "{\n        vVar5 = S_GET_VALUE(local_20);\n        fprintf((FILE *)file," %lx",vVar5);\n      }" { (expression_statement "vVar5 = S_GET_VALUE(local_20);" (assignment_expression "vVar5 = S_GET_VALUE(local_20)" identifier = (call_expression "S_GET_VALUE(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (expression_statement "fprintf((FILE *)file," %lx",vVar5);" (call_expression "fprintf((FILE *)file," %lx",vVar5)" identifier (argument_list "((FILE *)file," %lx",vVar5)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "" %lx"" " string_content ") , identifier ))) ;) }))) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;) })) (if_statement "if (7 < indent_level) goto LAB_0003c418;" if (parenthesized_expression "(7 < indent_level)" ( (binary_expression "7 < indent_level" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "paVar7 = local_20->bsym;" (assignment_expression "paVar7 = local_20->bsym" identifier = (field_expression "local_20->bsym" identifier -> field_identifier)) ;) (labeled_statement "LAB_0003c49c:\n    paVar4 = paVar7->section;" statement_identifier : (expression_statement "paVar4 = paVar7->section;" (assignment_expression "paVar4 = paVar7->section" identifier = (field_expression "paVar7->section" identifier -> field_identifier)) ;)) }) (else_clause "else {\n    paVar4 = (segT)local_20->bsym;\n    if (paVar4 == reg_section) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }\n    if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < indent_level) goto LAB_0003c418;\n  }" else (compound_statement "{\n    paVar4 = (segT)local_20->bsym;\n    if (paVar4 == reg_section) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }\n    if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < indent_level) goto LAB_0003c418;\n  }" { (expression_statement "paVar4 = (segT)local_20->bsym;" (assignment_expression "paVar4 = (segT)local_20->bsym" identifier = (cast_expression "(segT)local_20->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "local_20->bsym" identifier -> field_identifier))) ;) (if_statement "if (paVar4 == reg_section) {\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }" if (parenthesized_expression "(paVar4 == reg_section)" ( (binary_expression "paVar4 == reg_section" identifier == identifier) )) (compound_statement "{\n      psVar6 = (local_20->sy_value).X_op_symbol;\n      if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;\n      if (7 < indent_level) goto LAB_0003c418;\n      paVar7 = psVar6->bsym;\n      goto LAB_0003c49c;\n    }" { (expression_statement "psVar6 = (local_20->sy_value).X_op_symbol;" (assignment_expression "psVar6 = (local_20->sy_value).X_op_symbol" identifier = (field_expression "(local_20->sy_value).X_op_symbol" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((uint)psVar6->sy_flags & 4) != 0) goto LAB_0003c478;" if (parenthesized_expression "(((uint)psVar6->sy_flags & 4) != 0)" ( (binary_expression "((uint)psVar6->sy_flags & 4) != 0" (parenthesized_expression "((uint)psVar6->sy_flags & 4)" ( (binary_expression "(uint)psVar6->sy_flags & 4" (cast_expression "(uint)psVar6->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "psVar6->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c478;" goto statement_identifier ;)) (if_statement "if (7 < indent_level) goto LAB_0003c418;" if (parenthesized_expression "(7 < indent_level)" ( (binary_expression "7 < indent_level" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "paVar7 = psVar6->bsym;" (assignment_expression "paVar7 = psVar6->bsym" identifier = (field_expression "psVar6->bsym" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0003c49c;" goto statement_identifier ;) })) (if_statement "if (((uint)sVar1 & 4) != 0) goto LAB_0003c3e2;" if (parenthesized_expression "(((uint)sVar1 & 4) != 0)" ( (binary_expression "((uint)sVar1 & 4) != 0" (parenthesized_expression "((uint)sVar1 & 4)" ( (binary_expression "(uint)sVar1 & 4" (cast_expression "(uint)sVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c3e2;" goto statement_identifier ;)) (if_statement "if (7 < indent_level) goto LAB_0003c418;" if (parenthesized_expression "(7 < indent_level)" ( (binary_expression "7 < indent_level" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) }))) (if_statement "if (paVar4 == (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;" if (parenthesized_expression "(paVar4 == (segT)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "paVar4 == (segT)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier == (call_expression "(segT)(PTR__bfd_std_section_00077fa0 + 0xa8)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "indent_level = indent_level + 1;" (assignment_expression "indent_level = indent_level + 1" identifier = (binary_expression "indent_level + 1" identifier + number_literal)) ;) (expression_statement "puVar8 = &DAT_00056b65;" (assignment_expression "puVar8 = &DAT_00056b65" identifier = (pointer_expression "&DAT_00056b65" & identifier)) ;) (expression_statement "fprintf((FILE *)file,"\n%*s<",indent_level * 4,&DAT_00056b65);" (call_expression "fprintf((FILE *)file,"\n%*s<",indent_level * 4,&DAT_00056b65)" identifier (argument_list "((FILE *)file,"\n%*s<",indent_level * 4,&DAT_00056b65)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""\n%*s<"" " escape_sequence string_content ") , (binary_expression "indent_level * 4" identifier * number_literal) , (pointer_expression "&DAT_00056b65" & identifier) ))) ;) (if_statement "if (((uint)local_20->sy_flags & 1) == 0) {\nLAB_0003c7bb:\n    print_expr_1(file,&local_20->sy_value);\n  }\n  else {\n    if ((segT)local_20->bsym == reg_section) {\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }\n    fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);\n  }" if (parenthesized_expression "(((uint)local_20->sy_flags & 1) == 0)" ( (binary_expression "((uint)local_20->sy_flags & 1) == 0" (parenthesized_expression "((uint)local_20->sy_flags & 1)" ( (binary_expression "(uint)local_20->sy_flags & 1" (cast_expression "(uint)local_20->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_20->sy_flags" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0003c7bb:\n    print_expr_1(file,&local_20->sy_value);\n  }" { (labeled_statement "LAB_0003c7bb:\n    print_expr_1(file,&local_20->sy_value);" statement_identifier : (expression_statement "print_expr_1(file,&local_20->sy_value);" (call_expression "print_expr_1(file,&local_20->sy_value)" identifier (argument_list "(file,&local_20->sy_value)" ( identifier , (pointer_expression "&local_20->sy_value" & (field_expression "local_20->sy_value" identifier -> field_identifier)) ))) ;)) }) (else_clause "else {\n    if ((segT)local_20->bsym == reg_section) {\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }\n    fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);\n  }" else (compound_statement "{\n    if ((segT)local_20->bsym == reg_section) {\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }\n    fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);\n  }" { (if_statement "if ((segT)local_20->bsym == reg_section) {\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }" if (parenthesized_expression "((segT)local_20->bsym == reg_section)" ( (binary_expression "(segT)local_20->bsym == reg_section" (cast_expression "(segT)local_20->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "local_20->bsym" identifier -> field_identifier)) == identifier) )) (compound_statement "{\n      local_20 = (local_20->sy_value).X_op_symbol;\n      goto LAB_0003c7bb;\n    }" { (expression_statement "local_20 = (local_20->sy_value).X_op_symbol;" (assignment_expression "local_20 = (local_20->sy_value).X_op_symbol" identifier = (field_expression "(local_20->sy_value).X_op_symbol" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_0003c7bb;" goto statement_identifier ;) })) (expression_statement "fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8);" (call_expression "fprintf((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8)" identifier (argument_list "((FILE *)file,"constant %lx",(local_20->sy_value).X_add_number,puVar8)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""constant %lx"" " string_content ") , (field_expression "(local_20->sy_value).X_add_number" (parenthesized_expression "(local_20->sy_value)" ( (field_expression "local_20->sy_value" identifier -> field_identifier) )) . field_identifier) , identifier ))) ;) }))) (expression_statement "fputc(0x3e,(FILE *)file);" (call_expression "fputc(0x3e,(FILE *)file)" identifier (argument_list "(0x3e,(FILE *)file)" ( number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "indent_level = indent_level + -1;" (assignment_expression "indent_level = indent_level + -1" identifier = (binary_expression "indent_level + -1" identifier + number_literal)) ;) (labeled_statement "LAB_0003c418:\n  fflush((FILE *)file);" statement_identifier : (expression_statement "fflush((FILE *)file);" (call_expression "fflush((FILE *)file)" identifier (argument_list "((FILE *)file)" ( (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0003c1a0(FILE *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}\n\n" (function_definition "void FUN_0003c1a0(FILE *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}" primitive_type (function_declarator "FUN_0003c1a0(FILE *param_1,byte *param_2)" identifier (parameter_list "(FILE *param_1,byte *param_2)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "puVar3 = *(undefined4 **)(param_2 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(param_2 + 4)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 4)" * (cast_expression "(undefined4 **)(param_2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" if (parenthesized_expression "((*param_2 & 1) == 0)" ( (binary_expression "(*param_2 & 1) == 0" (parenthesized_expression "(*param_2 & 1)" ( (binary_expression "*param_2 & 1" (pointer_expression "*param_2" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }" { (labeled_statement "LAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];" statement_identifier : (expression_statement "pcVar6 = (char *)puVar3[1];" (assignment_expression "pcVar6 = (char *)puVar3[1]" identifier = (cast_expression "(char *)puVar3[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[1]" identifier [ number_literal ]))) ;)) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c1d4;" goto statement_identifier ;)) (labeled_statement "LAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }" statement_identifier : (if_statement "if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }" if (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar6 = "(unnamed)";\n    }" { (expression_statement "pcVar6 = "(unnamed)";" (assignment_expression "pcVar6 = "(unnamed)"" identifier = (string_literal ""(unnamed)"" " string_content ")) ;) }))) }) (else_clause "else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" else (compound_statement "{\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" { (if_statement "if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (compound_statement "{\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }" { (expression_statement "puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0003c1e6;" goto statement_identifier ;) })) (expression_statement "pcVar6 = *(char **)(param_2 + 8);" (assignment_expression "pcVar6 = *(char **)(param_2 + 8)" identifier = (pointer_expression "*(char **)(param_2 + 8)" * (cast_expression "(char **)(param_2 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c1ed;" goto statement_identifier ;)) (labeled_statement "LAB_0003c1d4:\n    pcVar6 = "(unnamed)";" statement_identifier : (expression_statement "pcVar6 = "(unnamed)";" (assignment_expression "pcVar6 = "(unnamed)"" identifier = (string_literal ""(unnamed)"" " string_content ")) ;)) }))) (expression_statement "fwrite(&DAT_0005a011,1,4,param_1);" (call_expression "fwrite(&DAT_0005a011,1,4,param_1)" identifier (argument_list "(&DAT_0005a011,1,4,param_1)" ( (pointer_expression "&DAT_0005a011" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(param_1,"%08lx",param_2);" (call_expression "fprintf(param_1,"%08lx",param_2)" identifier (argument_list "(param_1,"%08lx",param_2)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf(param_1," %s",pcVar6);" (call_expression "fprintf(param_1," %s",pcVar6)" identifier (argument_list "(param_1," %s",pcVar6)" ( identifier , (string_literal "" %s"" " string_content ") , identifier ))) ;) (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_20 = param_2;" (assignment_expression "local_20 = param_2" identifier = identifier) ;) (if_statement "if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" if (parenthesized_expression "(((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680))" ( (binary_expression "((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)" (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)" ( (comma_expression "local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680" (assignment_expression "local_20 = *(byte **)(param_2 + 0xc)" identifier = (pointer_expression "*(byte **)(param_2 + 0xc)" * (cast_expression "(byte **)(param_2 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) , (binary_expression "*(undefined4 **)(param_2 + 4) == DAT_00081680" (pointer_expression "*(undefined4 **)(param_2 + 4)" * (cast_expression "(undefined4 **)(param_2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) == identifier)) ))) )) (compound_statement "{\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }" { (if_statement "if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }" if (parenthesized_expression "(*(undefined **)(local_20 + 0x20) != &DAT_00081620)" ( (binary_expression "*(undefined **)(local_20 + 0x20) != &DAT_00081620" (pointer_expression "*(undefined **)(local_20 + 0x20)" * (cast_expression "(undefined **)(local_20 + 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0x20)" ( (binary_expression "local_20 + 0x20" identifier + number_literal) )))) != (pointer_expression "&DAT_00081620" & identifier)) )) (compound_statement "{\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }" { (expression_statement "fwrite(" frag ",1,6,param_1);" (call_expression "fwrite(" frag ",1,6,param_1)" identifier (argument_list "(" frag ",1,6,param_1)" ( (string_literal "" frag "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));" (call_expression "fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20))" identifier (argument_list "(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20))" ( identifier , (string_literal ""%08lx"" " string_content ") , (pointer_expression "*(undefined4 *)(local_20 + 0x20)" * (cast_expression "(undefined4 *)(local_20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0x20)" ( (binary_expression "local_20 + 0x20" identifier + number_literal) )))) ))) ;) })) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) (if_statement "if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }" { (expression_statement "fwrite(" written",1,8,param_1);" (call_expression "fwrite(" written",1,8,param_1)" identifier (argument_list "(" written",1,8,param_1)" ( (string_literal "" written"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) })) (if_statement "if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }" { (if_statement "if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }" if (parenthesized_expression "((bVar1 & 8) != 0)" ( (binary_expression "(bVar1 & 8) != 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }" { (expression_statement "fwrite(" resolving",1,10,param_1);" (call_expression "fwrite(" resolving",1,10,param_1)" identifier (argument_list "(" resolving",1,10,param_1)" ( (string_literal "" resolving"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) })) }) (else_clause "else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" else (compound_statement "{\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" { (expression_statement "fwrite(" resolved",1,9,param_1);" (call_expression "fwrite(" resolved",1,9,param_1)" identifier (argument_list "(" resolved",1,9,param_1)" ( (string_literal "" resolved"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) }))) (if_statement "if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" if (parenthesized_expression "((bVar1 & 0x10) == 0)" ( (binary_expression "(bVar1 & 0x10) == 0" (parenthesized_expression "(bVar1 & 0x10)" ( (binary_expression "bVar1 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }" { (if_statement "if ((bVar1 & 0x20) == 0) goto LAB_0003c325;" if (parenthesized_expression "((bVar1 & 0x20) == 0)" ( (binary_expression "(bVar1 & 0x20) == 0" (parenthesized_expression "(bVar1 & 0x20)" ( (binary_expression "bVar1 & 0x20" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003c325;" goto statement_identifier ;)) (labeled_statement "LAB_0003c4c8:\n      fwrite(" used",1,5,param_1);" statement_identifier : (expression_statement "fwrite(" used",1,5,param_1);" (call_expression "fwrite(" used",1,5,param_1)" identifier (argument_list "(" used",1,5,param_1)" ( (string_literal "" used"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar2 = FUN_000386d0(local_20);" (assignment_expression "iVar2 = FUN_000386d0(local_20)" identifier = (call_expression "FUN_000386d0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0003c4f0;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c4f0;" goto statement_identifier ;)) (labeled_statement "LAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);" statement_identifier : (expression_statement "iVar2 = FUN_000383f0(local_20);" (assignment_expression "iVar2 = FUN_000383f0(local_20)" identifier = (call_expression "FUN_000383f0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) (if_statement "if (iVar2 == 0) goto LAB_0003c34d;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c34d;" goto statement_identifier ;)) (labeled_statement "LAB_0003c518:\n      fwrite(" extern",1,7,param_1);" statement_identifier : (expression_statement "fwrite(" extern",1,7,param_1);" (call_expression "fwrite(" extern",1,7,param_1)" identifier (argument_list "(" extern",1,7,param_1)" ( (string_literal "" extern"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar2 = FUN_00038460(local_20);" (assignment_expression "iVar2 = FUN_00038460(local_20)" identifier = (call_expression "FUN_00038460(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) }) (else_clause "else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" else (compound_statement "{\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" { (expression_statement "fwrite(" used-in-reloc",1,0xe,param_1);" (call_expression "fwrite(" used-in-reloc",1,0xe,param_1)" identifier (argument_list "(" used-in-reloc",1,0xe,param_1)" ( (string_literal "" used-in-reloc"" " string_content ") , number_literal , number_literal , identifier ))) ;) (if_statement "if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;" if (parenthesized_expression "((*local_20 & 0x20) != 0)" ( (binary_expression "(*local_20 & 0x20) != 0" (parenthesized_expression "(*local_20 & 0x20)" ( (binary_expression "*local_20 & 0x20" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c4c8;" goto statement_identifier ;)) (labeled_statement "LAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);" statement_identifier : (expression_statement "iVar2 = FUN_000386d0(local_20);" (assignment_expression "iVar2 = FUN_000386d0(local_20)" identifier = (call_expression "FUN_000386d0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) (if_statement "if (iVar2 == 0) goto LAB_0003c339;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003c339;" goto statement_identifier ;)) (labeled_statement "LAB_0003c4f0:\n      fwrite(" local",1,6,param_1);" statement_identifier : (expression_statement "fwrite(" local",1,6,param_1);" (call_expression "fwrite(" local",1,6,param_1)" identifier (argument_list "(" local",1,6,param_1)" ( (string_literal "" local"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar2 = FUN_000383f0(local_20);" (assignment_expression "iVar2 = FUN_000383f0(local_20)" identifier = (call_expression "FUN_000383f0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0003c518;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c518;" goto statement_identifier ;)) (labeled_statement "LAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);" statement_identifier : (expression_statement "iVar2 = FUN_00038460(local_20);" (assignment_expression "iVar2 = FUN_00038460(local_20)" identifier = (call_expression "FUN_00038460(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;)) }))) (if_statement "if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      fwrite(" weak",1,5,param_1);\n    }" { (expression_statement "fwrite(" weak",1,5,param_1);" (call_expression "fwrite(" weak",1,5,param_1)" identifier (argument_list "(" weak",1,5,param_1)" ( (string_literal "" weak"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" if (parenthesized_expression "((*local_20 & 1) == 0)" ( (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" { (if_statement "if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" if (parenthesized_expression "((*(byte *)(puVar3 + 3) & 4) != 0)" ( (binary_expression "(*(byte *)(puVar3 + 3) & 4) != 0" (parenthesized_expression "(*(byte *)(puVar3 + 3) & 4)" ( (binary_expression "*(byte *)(puVar3 + 3) & 4" (pointer_expression "*(byte *)(puVar3 + 3)" * (cast_expression "(byte *)(puVar3 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" { (labeled_statement "LAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);" statement_identifier : (expression_statement "fwrite(" debug",1,6,param_1);" (call_expression "fwrite(" debug",1,6,param_1)" identifier (argument_list "(" debug",1,6,param_1)" ( (string_literal "" debug"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" if (parenthesized_expression "((*local_20 & 1) != 0)" ( (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" { (if_statement "if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }" if (parenthesized_expression "(puVar3 == DAT_00081680)" ( (binary_expression "puVar3 == DAT_00081680" identifier == identifier) )) (compound_statement "{\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }" { (expression_statement "iVar2 = *(int *)(local_20 + 0xc);" (assignment_expression "iVar2 = *(int *)(local_20 + 0xc)" identifier = (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c790;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003c440;" goto statement_identifier ;) })) })) (if_statement "if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;" if (parenthesized_expression "((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "(undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8" (cast_expression "(undefined *)puVar3[4]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[4]" identifier [ number_literal ])) != (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal)) )) (goto_statement "goto LAB_0003c454;" goto statement_identifier ;)) (goto_statement "goto LAB_0003c38d;" goto statement_identifier ;) })) (if_statement "if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (compound_statement "{\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }" { (expression_statement "iVar2 = *(int *)(local_20 + 0xc);" (assignment_expression "iVar2 = *(int *)(local_20 + 0xc)" identifier = (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;" if (parenthesized_expression "((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4)" ( (binary_expression "*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4" (pointer_expression "*(byte *)(*(int *)(iVar2 + 4) + 0xc)" * (cast_expression "(byte *)(*(int *)(iVar2 + 4) + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0xc)" ( (binary_expression "*(int *)(iVar2 + 4) + 0xc" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c6e0;" goto statement_identifier ;)) (labeled_statement "LAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;" statement_identifier : (if_statement "if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;" if (parenthesized_expression "(*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8" (pointer_expression "*(undefined **)(*(int *)(iVar2 + 4) + 0x10)" * (cast_expression "(undefined **)(*(int *)(iVar2 + 4) + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x10)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x10" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) )))) == (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal)) )) (goto_statement "goto LAB_0003c29f;" goto statement_identifier ;))) (labeled_statement "LAB_0003c454:\n      fwrite(" defined",1,8,param_1);" statement_identifier : (expression_statement "fwrite(" defined",1,8,param_1);" (call_expression "fwrite(" defined",1,8,param_1)" identifier (argument_list "(" defined",1,8,param_1)" ( (string_literal "" defined"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (goto_statement "goto LAB_0003c29f;" goto statement_identifier ;) })) (labeled_statement "LAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" statement_identifier : (if_statement "if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" if (parenthesized_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c454;" goto statement_identifier ;))) (labeled_statement "LAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" statement_identifier : (if_statement "if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (compound_statement "{\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" { (if_statement "if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }" if (parenthesized_expression "((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0)" ( (binary_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0" (parenthesized_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2)" ( (binary_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2" (pointer_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1)" * (cast_expression "(byte *)(*(int *)(local_20 + 0xc) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_20 + 0xc) + 1)" ( (binary_expression "*(int *)(local_20 + 0xc) + 1" (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }" { (labeled_statement "LAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);" statement_identifier : (expression_statement "fwrite(" weakrefr",1,9,param_1);" (call_expression "fwrite(" weakrefr",1,9,param_1)" identifier (argument_list "(" weakrefr",1,9,param_1)" ( (string_literal "" weakrefr"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (if_statement "if ((*local_20 & 1) == 0) goto LAB_0003c397;" if (parenthesized_expression "((*local_20 & 1) == 0)" ( (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003c397;" goto statement_identifier ;)) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00081680 != puVar3) goto LAB_0003c3ab;" if (parenthesized_expression "(DAT_00081680 != puVar3)" ( (binary_expression "DAT_00081680 != puVar3" identifier != identifier) )) (goto_statement "goto LAB_0003c3ab;" goto statement_identifier ;)) })) (if_statement "if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;" if (parenthesized_expression "((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0)" ( (binary_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0" (parenthesized_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4)" ( (binary_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4" (pointer_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1)" * (cast_expression "(byte *)(*(int *)(local_20 + 0xc) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_20 + 0xc) + 1)" ( (binary_expression "*(int *)(local_20 + 0xc) + 1" (pointer_expression "*(int *)(local_20 + 0xc)" * (cast_expression "(int *)(local_20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c5d8;" goto statement_identifier ;)) (labeled_statement "LAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);" statement_identifier : (expression_statement "pbVar5 = *(byte **)(local_20 + 0xc);" (assignment_expression "pbVar5 = *(byte **)(local_20 + 0xc)" identifier = (pointer_expression "*(byte **)(local_20 + 0xc)" * (cast_expression "(byte **)(local_20 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0003c3a5;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" else (compound_statement "{\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" { (if_statement "if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }" if (parenthesized_expression "((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64))" ( (binary_expression "(local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)" (parenthesized_expression "(local_20 != (byte *)0x0)" ( (binary_expression "local_20 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_20 != PTR_DAT_00077f64)" ( (binary_expression "local_20 != PTR_DAT_00077f64" identifier != identifier) ))) )) (compound_statement "{\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }" { (expression_statement "fwrite(" frag ",1,6,param_1);" (call_expression "fwrite(" frag ",1,6,param_1)" identifier (argument_list "(" frag ",1,6,param_1)" ( (string_literal "" frag "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));" (call_expression "fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc))" identifier (argument_list "(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc))" ( identifier , (string_literal ""%08lx"" " string_content ") , (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (if_statement "if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" resolved",1,9,param_1);\n    }" { (expression_statement "fwrite(" resolved",1,9,param_1);" (call_expression "fwrite(" resolved",1,9,param_1)" identifier (argument_list "(" resolved",1,9,param_1)" ( (string_literal "" resolved"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "fwrite(" local",1,6,param_1);" (call_expression "fwrite(" local",1,6,param_1)" identifier (argument_list "(" local",1,6,param_1)" ( (string_literal "" local"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "local_20 = param_2;" (assignment_expression "local_20 = param_2" identifier = identifier) ;) (labeled_statement "LAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" statement_identifier : (if_statement "if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" if (parenthesized_expression "((*local_20 & 1) != 0)" ( (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" { (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c2b4;" goto statement_identifier ;) }))) (labeled_statement "LAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;" statement_identifier : (if_statement "if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;" if (parenthesized_expression "((local_20[1] & 2) != 0)" ( (binary_expression "(local_20[1] & 2) != 0" (parenthesized_expression "(local_20[1] & 2)" ( (binary_expression "local_20[1] & 2" (subscript_expression "local_20[1]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c5a0;" goto statement_identifier ;))) (labeled_statement "LAB_0003c397:\n    pbVar5 = local_20;" statement_identifier : (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" identifier = identifier) ;)) (if_statement "if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" if (parenthesized_expression "((local_20[1] & 4) != 0)" ( (binary_expression "(local_20[1] & 4) != 0" (parenthesized_expression "(local_20[1] & 4)" ( (binary_expression "local_20[1] & 4" (subscript_expression "local_20[1]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" { (labeled_statement "LAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);" statement_identifier : (expression_statement "fwrite(" weakrefd",1,9,param_1);" (call_expression "fwrite(" weakrefd",1,9,param_1)" identifier (argument_list "(" weakrefd",1,9,param_1)" ( (string_literal "" weakrefd"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" identifier = identifier) ;) (if_statement "if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" if (parenthesized_expression "((*local_20 & 1) != 0)" ( (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" { (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00081680 == puVar3) goto LAB_0003c73a;" if (parenthesized_expression "(DAT_00081680 == puVar3)" ( (binary_expression "DAT_00081680 == puVar3" identifier == identifier) )) (goto_statement "goto LAB_0003c73a;" goto statement_identifier ;)) (goto_statement "goto LAB_0003c3ab;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" statement_identifier : (expression_statement "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" * (cast_expression "(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar5 + 4) + 0x10)" ( (binary_expression "*(int *)(pbVar5 + 4) + 0x10" (pointer_expression "*(int *)(pbVar5 + 4)" * (cast_expression "(int *)(pbVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + 4)" ( (binary_expression "pbVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;)) }))) (labeled_statement "LAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);" statement_identifier : (expression_statement "fprintf(param_1," %s",*puVar3);" (call_expression "fprintf(param_1," %s",*puVar3)" identifier (argument_list "(param_1," %s",*puVar3)" ( identifier , (string_literal "" %s"" " string_content ") , (pointer_expression "*puVar3" * identifier) ))) ;)) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) (if_statement "if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }" { (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" identifier = identifier) ;) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }" { (labeled_statement "LAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" statement_identifier : (expression_statement "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" * (cast_expression "(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar5 + 4) + 0x10)" ( (binary_expression "*(int *)(pbVar5 + 4) + 0x10" (pointer_expression "*(int *)(pbVar5 + 4)" * (cast_expression "(int *)(pbVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + 4)" ( (binary_expression "pbVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" statement_identifier : (if_statement "if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" if (parenthesized_expression "((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3))" ( (binary_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)" (parenthesized_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier != (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) && (parenthesized_expression "(DAT_000815e0 != puVar3)" ( (binary_expression "DAT_000815e0 != puVar3" identifier != identifier) ))) )) (compound_statement "{\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" { (expression_statement "uVar4 = FUN_00039e90();" (assignment_expression "uVar4 = FUN_00039e90()" identifier = (call_expression "FUN_00039e90()" identifier (argument_list "()" ( )))) ;) (expression_statement "fprintf(param_1," %lx",uVar4);" (call_expression "fprintf(param_1," %lx",uVar4)" identifier (argument_list "(param_1," %lx",uVar4)" ( identifier , (string_literal "" %lx"" " string_content ") , identifier ))) ;) }))) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;) })) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" if (parenthesized_expression "(7 < DAT_0008188c)" ( (binary_expression "7 < DAT_0008188c" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(local_20 + 4);" (assignment_expression "iVar2 = *(int *)(local_20 + 4)" identifier = (pointer_expression "*(int *)(local_20 + 4)" * (cast_expression "(int *)(local_20 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);" statement_identifier : (expression_statement "puVar3 = *(undefined4 **)(iVar2 + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(iVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x10)" * (cast_expression "(undefined4 **)(iVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" else (compound_statement "{\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" { (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }" if (parenthesized_expression "(puVar3 == DAT_00081680)" ( (binary_expression "puVar3 == DAT_00081680" identifier == identifier) )) (compound_statement "{\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }" { (expression_statement "pbVar5 = *(byte **)(local_20 + 0xc);" (assignment_expression "pbVar5 = *(byte **)(local_20 + 0xc)" identifier = (pointer_expression "*(byte **)(local_20 + 0xc)" * (cast_expression "(byte **)(local_20 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*pbVar5 & 4) != 0) goto LAB_0003c478;" if (parenthesized_expression "((*pbVar5 & 4) != 0)" ( (binary_expression "(*pbVar5 & 4) != 0" (parenthesized_expression "(*pbVar5 & 4)" ( (binary_expression "*pbVar5 & 4" (pointer_expression "*pbVar5" * identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c478;" goto statement_identifier ;)) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" if (parenthesized_expression "(7 < DAT_0008188c)" ( (binary_expression "7 < DAT_0008188c" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(pbVar5 + 4);" (assignment_expression "iVar2 = *(int *)(pbVar5 + 4)" identifier = (pointer_expression "*(int *)(pbVar5 + 4)" * (cast_expression "(int *)(pbVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + 4)" ( (binary_expression "pbVar5 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c49c;" goto statement_identifier ;) })) (if_statement "if ((bVar1 & 4) != 0) goto LAB_0003c3e2;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0003c3e2;" goto statement_identifier ;)) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" if (parenthesized_expression "(7 < DAT_0008188c)" ( (binary_expression "7 < DAT_0008188c" number_literal < identifier) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) }))) (if_statement "if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;" if (parenthesized_expression "(puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" ( (binary_expression "puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" identifier + number_literal) )))) )) (goto_statement "goto LAB_0003c418;" goto statement_identifier ;)) (expression_statement "DAT_0008188c = DAT_0008188c + 1;" (assignment_expression "DAT_0008188c = DAT_0008188c + 1" identifier = (binary_expression "DAT_0008188c + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = &DAT_00056b65;" (assignment_expression "puVar7 = &DAT_00056b65" identifier = (pointer_expression "&DAT_00056b65" & identifier)) ;) (expression_statement "fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);" (call_expression "fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65)" identifier (argument_list "(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65)" ( identifier , (string_literal ""\n%*s<"" " escape_sequence string_content ") , (binary_expression "DAT_0008188c * 4" identifier * number_literal) , (pointer_expression "&DAT_00056b65" & identifier) ))) ;) (if_statement "if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" if (parenthesized_expression "((*local_20 & 1) == 0)" ( (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" ( (binary_expression "*local_20 & 1" (pointer_expression "*local_20" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }" { (labeled_statement "LAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);" statement_identifier : (expression_statement "FUN_0003bd10(param_1,local_20 + 8);" (call_expression "FUN_0003bd10(param_1,local_20 + 8)" identifier (argument_list "(param_1,local_20 + 8)" ( identifier , (binary_expression "local_20 + 8" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" else (compound_statement "{\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" { (if_statement "if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }" if (parenthesized_expression "(*(undefined4 **)(local_20 + 4) == DAT_00081680)" ( (binary_expression "*(undefined4 **)(local_20 + 4) == DAT_00081680" (pointer_expression "*(undefined4 **)(local_20 + 4)" * (cast_expression "(undefined4 **)(local_20 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }" { (expression_statement "local_20 = *(byte **)(local_20 + 0xc);" (assignment_expression "local_20 = *(byte **)(local_20 + 0xc)" identifier = (pointer_expression "*(byte **)(local_20 + 0xc)" * (cast_expression "(byte **)(local_20 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003c7bb;" goto statement_identifier ;) })) (expression_statement "fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);" (call_expression "fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7)" identifier (argument_list "(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7)" ( identifier , (string_literal ""constant %lx"" " string_content ") , (pointer_expression "*(undefined4 *)(local_20 + 0x10)" * (cast_expression "(undefined4 *)(local_20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0x10)" ( (binary_expression "local_20 + 0x10" identifier + number_literal) )))) , identifier ))) ;) }))) (expression_statement "fputc(0x3e,param_1);" (call_expression "fputc(0x3e,param_1)" identifier (argument_list "(0x3e,param_1)" ( number_literal , identifier ))) ;) (expression_statement "DAT_0008188c = DAT_0008188c + -1;" (assignment_expression "DAT_0008188c = DAT_0008188c + -1" identifier = (binary_expression "DAT_0008188c + -1" identifier + number_literal)) ;) (labeled_statement "LAB_0003c418:\n  fflush(param_1);" statement_identifier : (expression_statement "fflush(param_1);" (call_expression "fflush(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (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 ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) }) (else_clause else (compound_statement { (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 ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT)) ))) )) (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) )))) != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (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 : (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 : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (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 : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (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 { (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (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 IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 IDENT + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (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 ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (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) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (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) ))))) ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_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) ))))) ;)) (labeled_statement statement_identifier : (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 ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT + 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) ))))) ;) (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 LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (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) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " escape_sequence string_content ") , (binary_expression IDENT * LIT) , (pointer_expression & 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 (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;)) }) (else_clause else (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_0003c1a0(FILE *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0003c1a0(FILE *param_1,byte *param_2)" (identifier "FUN_0003c1a0") (parameter_list "(FILE *param_1,byte *param_2)" (( "(") (parameter_declaration "FILE *param_1" (type_identifier "FILE") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  char *pcVar6;\n  undefined *puVar7;\n  byte *local_20;\n  \n  puVar3 = *(undefined4 **)(param_2 + 4);\n  if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }\n  fwrite(&DAT_0005a011,1,4,param_1);\n  fprintf(param_1,"%08lx",param_2);\n  fprintf(param_1," %s",pcVar6);\n  bVar1 = *param_2;\n  local_20 = param_2;\n  if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }\nLAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);\n  bVar1 = *local_20;\n  if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }\n  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;\n  DAT_0008188c = DAT_0008188c + 1;\n  puVar7 = &DAT_00056b65;\n  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);\n  if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }\n  fputc(0x3e,param_1);\n  DAT_0008188c = DAT_0008188c + -1;\nLAB_0003c418:\n  fflush(param_1);\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "byte *local_20;" (type_identifier "byte") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (expression_statement "puVar3 = *(undefined4 **)(param_2 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(param_2 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(param_2 + 4)" (* "*") (cast_expression "(undefined4 **)(param_2 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*param_2 & 1) == 0) {\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }\n  else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" (if "if") (parenthesized_expression "((*param_2 & 1) == 0)" (( "(") (binary_expression "(*param_2 & 1) == 0" (parenthesized_expression "(*param_2 & 1)" (( "(") (binary_expression "*param_2 & 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];\n    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;\nLAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }\n  }" ({ "{") (labeled_statement "LAB_0003c1e6:\n    pcVar6 = (char *)puVar3[1];" (statement_identifier "LAB_0003c1e6") (: ":") (expression_statement "pcVar6 = (char *)puVar3[1];" (assignment_expression "pcVar6 = (char *)puVar3[1]" (identifier "pcVar6") (= "=") (cast_expression "(char *)puVar3[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003c1d4;" (goto "goto") (statement_identifier "LAB_0003c1d4") (; ";"))) (labeled_statement "LAB_0003c1ed:\n    if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }" (statement_identifier "LAB_0003c1ed") (: ":") (if_statement "if (*pcVar6 == '\0') {\n      pcVar6 = "(unnamed)";\n    }" (if "if") (parenthesized_expression "(*pcVar6 == '\0')" (( "(") (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar6 = "(unnamed)";\n    }" ({ "{") (expression_statement "pcVar6 = "(unnamed)";" (assignment_expression "pcVar6 = "(unnamed)"" (identifier "pcVar6") (= "=") (string_literal ""(unnamed)"" (" """) (string_content "(unnamed)") (" """))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" (else "else") (compound_statement "{\n    if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }\n    pcVar6 = *(char **)(param_2 + 8);\n    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;\nLAB_0003c1d4:\n    pcVar6 = "(unnamed)";\n  }" ({ "{") (if_statement "if (DAT_00081680 == puVar3) {\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }" (if "if") (parenthesized_expression "(DAT_00081680 == puVar3)" (( "(") (binary_expression "DAT_00081680 == puVar3" (identifier "DAT_00081680") (== "==") (identifier "puVar3")) () ")")) (compound_statement "{\n      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);\n      goto LAB_0003c1e6;\n    }" ({ "{") (expression_statement "puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(param_2 + 0xc) + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0003c1e6;" (goto "goto") (statement_identifier "LAB_0003c1e6") (; ";")) (} "}"))) (expression_statement "pcVar6 = *(char **)(param_2 + 8);" (assignment_expression "pcVar6 = *(char **)(param_2 + 8)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(param_2 + 8)" (* "*") (cast_expression "(char **)(param_2 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;" (if "if") (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003c1ed;" (goto "goto") (statement_identifier "LAB_0003c1ed") (; ";"))) (labeled_statement "LAB_0003c1d4:\n    pcVar6 = "(unnamed)";" (statement_identifier "LAB_0003c1d4") (: ":") (expression_statement "pcVar6 = "(unnamed)";" (assignment_expression "pcVar6 = "(unnamed)"" (identifier "pcVar6") (= "=") (string_literal ""(unnamed)"" (" """) (string_content "(unnamed)") (" """))) (; ";"))) (} "}")))) (expression_statement "fwrite(&DAT_0005a011,1,4,param_1);" (call_expression "fwrite(&DAT_0005a011,1,4,param_1)" (identifier "fwrite") (argument_list "(&DAT_0005a011,1,4,param_1)" (( "(") (pointer_expression "&DAT_0005a011" (& "&") (identifier "DAT_0005a011")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "fprintf(param_1,"%08lx",param_2);" (call_expression "fprintf(param_1,"%08lx",param_2)" (identifier "fprintf") (argument_list "(param_1,"%08lx",param_2)" (( "(") (identifier "param_1") (, ",") (string_literal ""%08lx"" (" """) (string_content "%08lx") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "fprintf(param_1," %s",pcVar6);" (call_expression "fprintf(param_1," %s",pcVar6)" (identifier "fprintf") (argument_list "(param_1," %s",pcVar6)" (( "(") (identifier "param_1") (, ",") (string_literal "" %s"" (" """) (string_content " %s") (" """)) (, ",") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" (identifier "bVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "local_20 = param_2;" (assignment_expression "local_20 = param_2" (identifier "local_20") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }\n  else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" (if "if") (parenthesized_expression "(((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680))" (( "(") (binary_expression "((bVar1 & 1) == 0) ||\n     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)" (parenthesized_expression "((bVar1 & 1) == 0)" (( "(") (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)" (( "(") (comma_expression "local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680" (assignment_expression "local_20 = *(byte **)(param_2 + 0xc)" (identifier "local_20") (= "=") (pointer_expression "*(byte **)(param_2 + 0xc)" (* "*") (cast_expression "(byte **)(param_2 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "*(undefined4 **)(param_2 + 4) == DAT_00081680" (pointer_expression "*(undefined4 **)(param_2 + 4)" (* "*") (cast_expression "(undefined4 **)(param_2 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "DAT_00081680"))) () ")"))) () ")")) (compound_statement "{\n    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }\n    bVar1 = *local_20;\n    if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }\n    if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }\n    if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }\n    if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }\nLAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;\nLAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }\n  }" ({ "{") (if_statement "if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }" (if "if") (parenthesized_expression "(*(undefined **)(local_20 + 0x20) != &DAT_00081620)" (( "(") (binary_expression "*(undefined **)(local_20 + 0x20) != &DAT_00081620" (pointer_expression "*(undefined **)(local_20 + 0x20)" (* "*") (cast_expression "(undefined **)(local_20 + 0x20)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 0x20)" (( "(") (binary_expression "local_20 + 0x20" (identifier "local_20") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (pointer_expression "&DAT_00081620" (& "&") (identifier "DAT_00081620"))) () ")")) (compound_statement "{\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));\n    }" ({ "{") (expression_statement "fwrite(" frag ",1,6,param_1);" (call_expression "fwrite(" frag ",1,6,param_1)" (identifier "fwrite") (argument_list "(" frag ",1,6,param_1)" (( "(") (string_literal "" frag "" (" """) (string_content " frag ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));" (call_expression "fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20))" (identifier "fprintf") (argument_list "(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20))" (( "(") (identifier "param_1") (, ",") (string_literal ""%08lx"" (" """) (string_content "%08lx") (" """)) (, ",") (pointer_expression "*(undefined4 *)(local_20 + 0x20)" (* "*") (cast_expression "(undefined4 *)(local_20 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0x20)" (( "(") (binary_expression "local_20 + 0x20" (identifier "local_20") (+ "+") (number_literal "0x20")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" (identifier "bVar1") (= "=") (pointer_expression "*local_20" (* "*") (identifier "local_20"))) (; ";")) (if_statement "if ((bVar1 & 2) != 0) {\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }" (if "if") (parenthesized_expression "((bVar1 & 2) != 0)" (( "(") (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" written",1,8,param_1);\n      bVar1 = *local_20;\n    }" ({ "{") (expression_statement "fwrite(" written",1,8,param_1);" (call_expression "fwrite(" written",1,8,param_1)" (identifier "fwrite") (argument_list "(" written",1,8,param_1)" (( "(") (string_literal "" written"" (" """) (string_content " written") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" (identifier "bVar1") (= "=") (pointer_expression "*local_20" (* "*") (identifier "local_20"))) (; ";")) (} "}"))) (if_statement "if ((bVar1 & 4) == 0) {\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }\n    else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" (if "if") (parenthesized_expression "((bVar1 & 4) == 0)" (( "(") (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }\n    }" ({ "{") (if_statement "if ((bVar1 & 8) != 0) {\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }" (if "if") (parenthesized_expression "((bVar1 & 8) != 0)" (( "(") (binary_expression "(bVar1 & 8) != 0" (parenthesized_expression "(bVar1 & 8)" (( "(") (binary_expression "bVar1 & 8" (identifier "bVar1") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        fwrite(" resolving",1,10,param_1);\n        bVar1 = *local_20;\n      }" ({ "{") (expression_statement "fwrite(" resolving",1,10,param_1);" (call_expression "fwrite(" resolving",1,10,param_1)" (identifier "fwrite") (argument_list "(" resolving",1,10,param_1)" (( "(") (string_literal "" resolving"" (" """) (string_content " resolving") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "10") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" (identifier "bVar1") (= "=") (pointer_expression "*local_20" (* "*") (identifier "local_20"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" (else "else") (compound_statement "{\n      fwrite(" resolved",1,9,param_1);\n      bVar1 = *local_20;\n    }" ({ "{") (expression_statement "fwrite(" resolved",1,9,param_1);" (call_expression "fwrite(" resolved",1,9,param_1)" (identifier "fwrite") (argument_list "(" resolved",1,9,param_1)" (( "(") (string_literal "" resolved"" (" """) (string_content " resolved") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" (identifier "bVar1") (= "=") (pointer_expression "*local_20" (* "*") (identifier "local_20"))) (; ";")) (} "}")))) (if_statement "if ((bVar1 & 0x10) == 0) {\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }\n    else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" (if "if") (parenthesized_expression "((bVar1 & 0x10) == 0)" (( "(") (binary_expression "(bVar1 & 0x10) == 0" (parenthesized_expression "(bVar1 & 0x10)" (( "(") (binary_expression "bVar1 & 0x10" (identifier "bVar1") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;\nLAB_0003c4c8:\n      fwrite(" used",1,5,param_1);\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 != 0) goto LAB_0003c4f0;\nLAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 == 0) goto LAB_0003c34d;\nLAB_0003c518:\n      fwrite(" extern",1,7,param_1);\n      iVar2 = FUN_00038460(local_20);\n    }" ({ "{") (if_statement "if ((bVar1 & 0x20) == 0) goto LAB_0003c325;" (if "if") (parenthesized_expression "((bVar1 & 0x20) == 0)" (( "(") (binary_expression "(bVar1 & 0x20) == 0" (parenthesized_expression "(bVar1 & 0x20)" (( "(") (binary_expression "bVar1 & 0x20" (identifier "bVar1") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c325;" (goto "goto") (statement_identifier "LAB_0003c325") (; ";"))) (labeled_statement "LAB_0003c4c8:\n      fwrite(" used",1,5,param_1);" (statement_identifier "LAB_0003c4c8") (: ":") (expression_statement "fwrite(" used",1,5,param_1);" (call_expression "fwrite(" used",1,5,param_1)" (identifier "fwrite") (argument_list "(" used",1,5,param_1)" (( "(") (string_literal "" used"" (" """) (string_content " used") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "iVar2 = FUN_000386d0(local_20);" (assignment_expression "iVar2 = FUN_000386d0(local_20)" (identifier "iVar2") (= "=") (call_expression "FUN_000386d0(local_20)" (identifier "FUN_000386d0") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0003c4f0;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c4f0;" (goto "goto") (statement_identifier "LAB_0003c4f0") (; ";"))) (labeled_statement "LAB_0003c339:\n      iVar2 = FUN_000383f0(local_20);" (statement_identifier "LAB_0003c339") (: ":") (expression_statement "iVar2 = FUN_000383f0(local_20);" (assignment_expression "iVar2 = FUN_000383f0(local_20)" (identifier "iVar2") (= "=") (call_expression "FUN_000383f0(local_20)" (identifier "FUN_000383f0") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";"))) (if_statement "if (iVar2 == 0) goto LAB_0003c34d;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c34d;" (goto "goto") (statement_identifier "LAB_0003c34d") (; ";"))) (labeled_statement "LAB_0003c518:\n      fwrite(" extern",1,7,param_1);" (statement_identifier "LAB_0003c518") (: ":") (expression_statement "fwrite(" extern",1,7,param_1);" (call_expression "fwrite(" extern",1,7,param_1)" (identifier "fwrite") (argument_list "(" extern",1,7,param_1)" (( "(") (string_literal "" extern"" (" """) (string_content " extern") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "iVar2 = FUN_00038460(local_20);" (assignment_expression "iVar2 = FUN_00038460(local_20)" (identifier "iVar2") (= "=") (call_expression "FUN_00038460(local_20)" (identifier "FUN_00038460") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" (else "else") (compound_statement "{\n      fwrite(" used-in-reloc",1,0xe,param_1);\n      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;\nLAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);\n      if (iVar2 == 0) goto LAB_0003c339;\nLAB_0003c4f0:\n      fwrite(" local",1,6,param_1);\n      iVar2 = FUN_000383f0(local_20);\n      if (iVar2 != 0) goto LAB_0003c518;\nLAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);\n    }" ({ "{") (expression_statement "fwrite(" used-in-reloc",1,0xe,param_1);" (call_expression "fwrite(" used-in-reloc",1,0xe,param_1)" (identifier "fwrite") (argument_list "(" used-in-reloc",1,0xe,param_1)" (( "(") (string_literal "" used-in-reloc"" (" """) (string_content " used-in-reloc") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xe") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;" (if "if") (parenthesized_expression "((*local_20 & 0x20) != 0)" (( "(") (binary_expression "(*local_20 & 0x20) != 0" (parenthesized_expression "(*local_20 & 0x20)" (( "(") (binary_expression "*local_20 & 0x20" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c4c8;" (goto "goto") (statement_identifier "LAB_0003c4c8") (; ";"))) (labeled_statement "LAB_0003c325:\n      iVar2 = FUN_000386d0(local_20);" (statement_identifier "LAB_0003c325") (: ":") (expression_statement "iVar2 = FUN_000386d0(local_20);" (assignment_expression "iVar2 = FUN_000386d0(local_20)" (identifier "iVar2") (= "=") (call_expression "FUN_000386d0(local_20)" (identifier "FUN_000386d0") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";"))) (if_statement "if (iVar2 == 0) goto LAB_0003c339;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c339;" (goto "goto") (statement_identifier "LAB_0003c339") (; ";"))) (labeled_statement "LAB_0003c4f0:\n      fwrite(" local",1,6,param_1);" (statement_identifier "LAB_0003c4f0") (: ":") (expression_statement "fwrite(" local",1,6,param_1);" (call_expression "fwrite(" local",1,6,param_1)" (identifier "fwrite") (argument_list "(" local",1,6,param_1)" (( "(") (string_literal "" local"" (" """) (string_content " local") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "iVar2 = FUN_000383f0(local_20);" (assignment_expression "iVar2 = FUN_000383f0(local_20)" (identifier "iVar2") (= "=") (call_expression "FUN_000383f0(local_20)" (identifier "FUN_000383f0") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0003c518;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c518;" (goto "goto") (statement_identifier "LAB_0003c518") (; ";"))) (labeled_statement "LAB_0003c34d:\n      iVar2 = FUN_00038460(local_20);" (statement_identifier "LAB_0003c34d") (: ":") (expression_statement "iVar2 = FUN_00038460(local_20);" (assignment_expression "iVar2 = FUN_00038460(local_20)" (identifier "iVar2") (= "=") (call_expression "FUN_00038460(local_20)" (identifier "FUN_00038460") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";"))) (} "}")))) (if_statement "if (iVar2 != 0) {\n      fwrite(" weak",1,5,param_1);\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" weak",1,5,param_1);\n    }" ({ "{") (expression_statement "fwrite(" weak",1,5,param_1);" (call_expression "fwrite(" weak",1,5,param_1)" (identifier "fwrite") (argument_list "(" weak",1,5,param_1)" (( "(") (string_literal "" weak"" (" """) (string_content " weak") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_20 + 4)" (* "*") (cast_expression "(undefined4 **)(local_20 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*local_20 & 1) == 0) {\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" (if "if") (parenthesized_expression "((*local_20 & 1) == 0)" (( "(") (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" (( "(") (binary_expression "*local_20 & 1" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }\n      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;\n      goto LAB_0003c38d;\n    }" ({ "{") (if_statement "if ((*(byte *)(puVar3 + 3) & 4) != 0) {\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)(puVar3 + 3) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(puVar3 + 3) & 4) != 0" (parenthesized_expression "(*(byte *)(puVar3 + 3) & 4)" (( "(") (binary_expression "*(byte *)(puVar3 + 3) & 4" (pointer_expression "*(byte *)(puVar3 + 3)" (* "*") (cast_expression "(byte *)(puVar3 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 3)" (( "(") (binary_expression "puVar3 + 3" (identifier "puVar3") (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }\n      }" ({ "{") (labeled_statement "LAB_0003c6e0:\n        fwrite(" debug",1,6,param_1);" (statement_identifier "LAB_0003c6e0") (: ":") (expression_statement "fwrite(" debug",1,6,param_1);" (call_expression "fwrite(" debug",1,6,param_1)" (identifier "fwrite") (argument_list "(" debug",1,6,param_1)" (( "(") (string_literal "" debug"" (" """) (string_content " debug") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_20 + 4)" (* "*") (cast_expression "(undefined4 **)(local_20 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*local_20 & 1) != 0) {\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" (if "if") (parenthesized_expression "((*local_20 & 1) != 0)" (( "(") (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" (( "(") (binary_expression "*local_20 & 1" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }\n          goto LAB_0003c440;\n        }" ({ "{") (if_statement "if (puVar3 == DAT_00081680) {\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }" (if "if") (parenthesized_expression "(puVar3 == DAT_00081680)" (( "(") (binary_expression "puVar3 == DAT_00081680" (identifier "puVar3") (== "==") (identifier "DAT_00081680")) () ")")) (compound_statement "{\n            iVar2 = *(int *)(local_20 + 0xc);\n            goto LAB_0003c790;\n          }" ({ "{") (expression_statement "iVar2 = *(int *)(local_20 + 0xc);" (assignment_expression "iVar2 = *(int *)(local_20 + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(local_20 + 0xc)" (* "*") (cast_expression "(int *)(local_20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_0003c790;" (goto "goto") (statement_identifier "LAB_0003c790") (; ";")) (} "}"))) (goto_statement "goto LAB_0003c440;" (goto "goto") (statement_identifier "LAB_0003c440") (; ";")) (} "}"))) (} "}"))) (if_statement "if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;" (if "if") (parenthesized_expression "((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (binary_expression "(undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8" (cast_expression "(undefined *)puVar3[4]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xa8"))) () ")")) (goto_statement "goto LAB_0003c454;" (goto "goto") (statement_identifier "LAB_0003c454") (; ";"))) (goto_statement "goto LAB_0003c38d;" (goto "goto") (statement_identifier "LAB_0003c38d") (; ";")) (} "}"))) (if_statement "if (DAT_00081680 == puVar3) {\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }" (if "if") (parenthesized_expression "(DAT_00081680 == puVar3)" (( "(") (binary_expression "DAT_00081680 == puVar3" (identifier "DAT_00081680") (== "==") (identifier "puVar3")) () ")")) (compound_statement "{\n      iVar2 = *(int *)(local_20 + 0xc);\n      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;\nLAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;\nLAB_0003c454:\n      fwrite(" defined",1,8,param_1);\n      goto LAB_0003c29f;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(local_20 + 0xc);" (assignment_expression "iVar2 = *(int *)(local_20 + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(local_20 + 0xc)" (* "*") (cast_expression "(int *)(local_20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4" (pointer_expression "*(byte *)(*(int *)(iVar2 + 4) + 0xc)" (* "*") (cast_expression "(byte *)(*(int *)(iVar2 + 4) + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 4) + 0xc)" (( "(") (binary_expression "*(int *)(iVar2 + 4) + 0xc" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c6e0;" (goto "goto") (statement_identifier "LAB_0003c6e0") (; ";"))) (labeled_statement "LAB_0003c790:\n      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;" (statement_identifier "LAB_0003c790") (: ":") (if_statement "if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)\n      goto LAB_0003c29f;" (if "if") (parenthesized_expression "(*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (binary_expression "*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8" (pointer_expression "*(undefined **)(*(int *)(iVar2 + 4) + 0x10)" (* "*") (cast_expression "(undefined **)(*(int *)(iVar2 + 4) + 0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x10)" (( "(") (binary_expression "*(int *)(iVar2 + 4) + 0x10" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xa8"))) () ")")) (goto_statement "goto LAB_0003c29f;" (goto "goto") (statement_identifier "LAB_0003c29f") (; ";")))) (labeled_statement "LAB_0003c454:\n      fwrite(" defined",1,8,param_1);" (statement_identifier "LAB_0003c454") (: ":") (expression_statement "fwrite(" defined",1,8,param_1);" (call_expression "fwrite(" defined",1,8,param_1)" (identifier "fwrite") (argument_list "(" defined",1,8,param_1)" (( "(") (string_literal "" defined"" (" """) (string_content " defined") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "param_1") () ")"))) (; ";"))) (goto_statement "goto LAB_0003c29f;" (goto "goto") (statement_identifier "LAB_0003c29f") (; ";")) (} "}"))) (labeled_statement "LAB_0003c440:\n    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" (statement_identifier "LAB_0003c440") (: ":") (if_statement "if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;" (if "if") (parenthesized_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" (( "(") (binary_expression "puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xa8")) () ")")))) () ")")) (goto_statement "goto LAB_0003c454;" (goto "goto") (statement_identifier "LAB_0003c454") (; ";")))) (labeled_statement "LAB_0003c2b4:\n    if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" (statement_identifier "LAB_0003c2b4") (: ":") (if_statement "if (DAT_00081680 == puVar3) {\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" (if "if") (parenthesized_expression "(DAT_00081680 == puVar3)" (( "(") (binary_expression "DAT_00081680 == puVar3" (identifier "DAT_00081680") (== "==") (identifier "puVar3")) () ")")) (compound_statement "{\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }\n      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;\nLAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c3a5;\n    }" ({ "{") (if_statement "if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0" (parenthesized_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2)" (( "(") (binary_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2" (pointer_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1)" (* "*") (cast_expression "(byte *)(*(int *)(local_20 + 0xc) + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_20 + 0xc) + 1)" (( "(") (binary_expression "*(int *)(local_20 + 0xc) + 1" (pointer_expression "*(int *)(local_20 + 0xc)" (* "*") (cast_expression "(int *)(local_20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);\n        if ((*local_20 & 1) == 0) goto LAB_0003c397;\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;\n      }" ({ "{") (labeled_statement "LAB_0003c5a0:\n        fwrite(" weakrefr",1,9,param_1);" (statement_identifier "LAB_0003c5a0") (: ":") (expression_statement "fwrite(" weakrefr",1,9,param_1);" (call_expression "fwrite(" weakrefr",1,9,param_1)" (identifier "fwrite") (argument_list "(" weakrefr",1,9,param_1)" (( "(") (string_literal "" weakrefr"" (" """) (string_content " weakrefr") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (identifier "param_1") () ")"))) (; ";"))) (if_statement "if ((*local_20 & 1) == 0) goto LAB_0003c397;" (if "if") (parenthesized_expression "((*local_20 & 1) == 0)" (( "(") (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" (( "(") (binary_expression "*local_20 & 1" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c397;" (goto "goto") (statement_identifier "LAB_0003c397") (; ";"))) (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_20 + 4)" (* "*") (cast_expression "(undefined4 **)(local_20 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (DAT_00081680 != puVar3) goto LAB_0003c3ab;" (if "if") (parenthesized_expression "(DAT_00081680 != puVar3)" (( "(") (binary_expression "DAT_00081680 != puVar3" (identifier "DAT_00081680") (!= "!=") (identifier "puVar3")) () ")")) (goto_statement "goto LAB_0003c3ab;" (goto "goto") (statement_identifier "LAB_0003c3ab") (; ";"))) (} "}"))) (if_statement "if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0" (parenthesized_expression "(*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4)" (( "(") (binary_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4" (pointer_expression "*(byte *)(*(int *)(local_20 + 0xc) + 1)" (* "*") (cast_expression "(byte *)(*(int *)(local_20 + 0xc) + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_20 + 0xc) + 1)" (( "(") (binary_expression "*(int *)(local_20 + 0xc) + 1" (pointer_expression "*(int *)(local_20 + 0xc)" (* "*") (cast_expression "(int *)(local_20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c5d8;" (goto "goto") (statement_identifier "LAB_0003c5d8") (; ";"))) (labeled_statement "LAB_0003c73a:\n      pbVar5 = *(byte **)(local_20 + 0xc);" (statement_identifier "LAB_0003c73a") (: ":") (expression_statement "pbVar5 = *(byte **)(local_20 + 0xc);" (assignment_expression "pbVar5 = *(byte **)(local_20 + 0xc)" (identifier "pbVar5") (= "=") (pointer_expression "*(byte **)(local_20 + 0xc)" (* "*") (cast_expression "(byte **)(local_20 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0003c3a5;" (goto "goto") (statement_identifier "LAB_0003c3a5") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" (else "else") (compound_statement "{\n    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }\n    if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }\n    fwrite(" local",1,6,param_1);\n    local_20 = param_2;\nLAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }\nLAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;\nLAB_0003c397:\n    pbVar5 = local_20;\n    if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }\nLAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\n  }" ({ "{") (if_statement "if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }" (if "if") (parenthesized_expression "((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64))" (( "(") (binary_expression "(local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)" (parenthesized_expression "(local_20 != (byte *)0x0)" (( "(") (binary_expression "local_20 != (byte *)0x0" (identifier "local_20") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_20 != PTR_DAT_00077f64)" (( "(") (binary_expression "local_20 != PTR_DAT_00077f64" (identifier "local_20") (!= "!=") (identifier "PTR_DAT_00077f64")) () ")"))) () ")")) (compound_statement "{\n      fwrite(" frag ",1,6,param_1);\n      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));\n      bVar1 = *param_2;\n    }" ({ "{") (expression_statement "fwrite(" frag ",1,6,param_1);" (call_expression "fwrite(" frag ",1,6,param_1)" (identifier "fwrite") (argument_list "(" frag ",1,6,param_1)" (( "(") (string_literal "" frag "" (" """) (string_content " frag ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));" (call_expression "fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc))" (identifier "fprintf") (argument_list "(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc))" (( "(") (identifier "param_1") (, ",") (string_literal ""%08lx"" (" """) (string_content "%08lx") (" """)) (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "bVar1 = *param_2;" (assignment_expression "bVar1 = *param_2" (identifier "bVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (if_statement "if ((bVar1 & 4) != 0) {\n      fwrite(" resolved",1,9,param_1);\n    }" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" resolved",1,9,param_1);\n    }" ({ "{") (expression_statement "fwrite(" resolved",1,9,param_1);" (call_expression "fwrite(" resolved",1,9,param_1)" (identifier "fwrite") (argument_list "(" resolved",1,9,param_1)" (( "(") (string_literal "" resolved"" (" """) (string_content " resolved") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "fwrite(" local",1,6,param_1);" (call_expression "fwrite(" local",1,6,param_1)" (identifier "fwrite") (argument_list "(" local",1,6,param_1)" (( "(") (string_literal "" local"" (" """) (string_content " local") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "local_20 = param_2;" (assignment_expression "local_20 = param_2" (identifier "local_20") (= "=") (identifier "param_2")) (; ";")) (labeled_statement "LAB_0003c29f:\n    if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" (statement_identifier "LAB_0003c29f") (: ":") (if_statement "if ((*local_20 & 1) != 0) {\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" (if "if") (parenthesized_expression "((*local_20 & 1) != 0)" (( "(") (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" (( "(") (binary_expression "*local_20 & 1" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar3 = *(undefined4 **)(local_20 + 4);\n      goto LAB_0003c2b4;\n    }" ({ "{") (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_20 + 4)" (* "*") (cast_expression "(undefined4 **)(local_20 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0003c2b4;" (goto "goto") (statement_identifier "LAB_0003c2b4") (; ";")) (} "}")))) (labeled_statement "LAB_0003c38d:\n    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;" (statement_identifier "LAB_0003c38d") (: ":") (if_statement "if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;" (if "if") (parenthesized_expression "((local_20[1] & 2) != 0)" (( "(") (binary_expression "(local_20[1] & 2) != 0" (parenthesized_expression "(local_20[1] & 2)" (( "(") (binary_expression "local_20[1] & 2" (subscript_expression "local_20[1]" (identifier "local_20") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c5a0;" (goto "goto") (statement_identifier "LAB_0003c5a0") (; ";")))) (labeled_statement "LAB_0003c397:\n    pbVar5 = local_20;" (statement_identifier "LAB_0003c397") (: ":") (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" (identifier "pbVar5") (= "=") (identifier "local_20")) (; ";"))) (if_statement "if ((local_20[1] & 4) != 0) {\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" (if "if") (parenthesized_expression "((local_20[1] & 4) != 0)" (( "(") (binary_expression "(local_20[1] & 4) != 0" (parenthesized_expression "(local_20[1] & 4)" (( "(") (binary_expression "local_20[1] & 4" (subscript_expression "local_20[1]" (identifier "local_20") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);\n      pbVar5 = local_20;\n      if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }\n    }" ({ "{") (labeled_statement "LAB_0003c5d8:\n      fwrite(" weakrefd",1,9,param_1);" (statement_identifier "LAB_0003c5d8") (: ":") (expression_statement "fwrite(" weakrefd",1,9,param_1);" (call_expression "fwrite(" weakrefd",1,9,param_1)" (identifier "fwrite") (argument_list "(" weakrefd",1,9,param_1)" (( "(") (string_literal "" weakrefd"" (" """) (string_content " weakrefd") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" (identifier "pbVar5") (= "=") (identifier "local_20")) (; ";")) (if_statement "if ((*local_20 & 1) != 0) {\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" (if "if") (parenthesized_expression "((*local_20 & 1) != 0)" (( "(") (binary_expression "(*local_20 & 1) != 0" (parenthesized_expression "(*local_20 & 1)" (( "(") (binary_expression "*local_20 & 1" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar3 = *(undefined4 **)(local_20 + 4);\n        if (DAT_00081680 == puVar3) goto LAB_0003c73a;\n        goto LAB_0003c3ab;\n      }" ({ "{") (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_20 + 4)" (* "*") (cast_expression "(undefined4 **)(local_20 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (DAT_00081680 == puVar3) goto LAB_0003c73a;" (if "if") (parenthesized_expression "(DAT_00081680 == puVar3)" (( "(") (binary_expression "DAT_00081680 == puVar3" (identifier "DAT_00081680") (== "==") (identifier "puVar3")) () ")")) (goto_statement "goto LAB_0003c73a;" (goto "goto") (statement_identifier "LAB_0003c73a") (; ";"))) (goto_statement "goto LAB_0003c3ab;" (goto "goto") (statement_identifier "LAB_0003c3ab") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0003c3a5:\n    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (statement_identifier "LAB_0003c3a5") (: ":") (expression_statement "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" (* "*") (cast_expression "(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar5 + 4) + 0x10)" (( "(") (binary_expression "*(int *)(pbVar5 + 4) + 0x10" (pointer_expression "*(int *)(pbVar5 + 4)" (* "*") (cast_expression "(int *)(pbVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar5 + 4)" (( "(") (binary_expression "pbVar5 + 4" (identifier "pbVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (} "}")))) (labeled_statement "LAB_0003c3ab:\n  fprintf(param_1," %s",*puVar3);" (statement_identifier "LAB_0003c3ab") (: ":") (expression_statement "fprintf(param_1," %s",*puVar3);" (call_expression "fprintf(param_1," %s",*puVar3)" (identifier "fprintf") (argument_list "(param_1," %s",*puVar3)" (( "(") (identifier "param_1") (, ",") (string_literal "" %s"" (" """) (string_content " %s") (" """)) (, ",") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) () ")"))) (; ";"))) (expression_statement "bVar1 = *local_20;" (assignment_expression "bVar1 = *local_20" (identifier "bVar1") (= "=") (pointer_expression "*local_20" (* "*") (identifier "local_20"))) (; ";")) (if_statement "if ((bVar1 & 1) == 0) {\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }\n  else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" (if "if") (parenthesized_expression "((bVar1 & 1) == 0)" (( "(") (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar5 = local_20;\n    if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n    iVar2 = *(int *)(local_20 + 4);\nLAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);\n  }" ({ "{") (expression_statement "pbVar5 = local_20;" (assignment_expression "pbVar5 = local_20" (identifier "pbVar5") (= "=") (identifier "local_20")) (; ";")) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);\nLAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }\n      goto LAB_0003c418;\n    }" ({ "{") (labeled_statement "LAB_0003c478:\n      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (statement_identifier "LAB_0003c478") (: ":") (expression_statement "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" (* "*") (cast_expression "(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar5 + 4) + 0x10)" (( "(") (binary_expression "*(int *)(pbVar5 + 4) + 0x10" (pointer_expression "*(int *)(pbVar5 + 4)" (* "*") (cast_expression "(int *)(pbVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar5 + 4)" (( "(") (binary_expression "pbVar5 + 4" (identifier "pbVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (labeled_statement "LAB_0003c3e2:\n      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" (statement_identifier "LAB_0003c3e2") (: ":") (if_statement "if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)) {\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" (if "if") (parenthesized_expression "((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3))" (( "(") (binary_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&\n         (DAT_000815e0 != puVar3)" (parenthesized_expression "(puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" (( "(") (binary_expression "puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xa8")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(DAT_000815e0 != puVar3)" (( "(") (binary_expression "DAT_000815e0 != puVar3" (identifier "DAT_000815e0") (!= "!=") (identifier "puVar3")) () ")"))) () ")")) (compound_statement "{\n        uVar4 = FUN_00039e90();\n        fprintf(param_1," %lx",uVar4);\n      }" ({ "{") (expression_statement "uVar4 = FUN_00039e90();" (assignment_expression "uVar4 = FUN_00039e90()" (identifier "uVar4") (= "=") (call_expression "FUN_00039e90()" (identifier "FUN_00039e90") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "fprintf(param_1," %lx",uVar4);" (call_expression "fprintf(param_1," %lx",uVar4)" (identifier "fprintf") (argument_list "(param_1," %lx",uVar4)" (( "(") (identifier "param_1") (, ",") (string_literal "" %lx"" (" """) (string_content " %lx") (" """)) (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0003c418;" (goto "goto") (statement_identifier "LAB_0003c418") (; ";")) (} "}"))) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" (if "if") (parenthesized_expression "(7 < DAT_0008188c)" (( "(") (binary_expression "7 < DAT_0008188c" (number_literal "7") (< "<") (identifier "DAT_0008188c")) () ")")) (goto_statement "goto LAB_0003c418;" (goto "goto") (statement_identifier "LAB_0003c418") (; ";"))) (expression_statement "iVar2 = *(int *)(local_20 + 4);" (assignment_expression "iVar2 = *(int *)(local_20 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(local_20 + 4)" (* "*") (cast_expression "(int *)(local_20 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (labeled_statement "LAB_0003c49c:\n    puVar3 = *(undefined4 **)(iVar2 + 0x10);" (statement_identifier "LAB_0003c49c") (: ":") (expression_statement "puVar3 = *(undefined4 **)(iVar2 + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(iVar2 + 0x10)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" (else "else") (compound_statement "{\n    puVar3 = *(undefined4 **)(local_20 + 4);\n    if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }\n    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;\n    if (7 < DAT_0008188c) goto LAB_0003c418;\n  }" ({ "{") (expression_statement "puVar3 = *(undefined4 **)(local_20 + 4);" (assignment_expression "puVar3 = *(undefined4 **)(local_20 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(local_20 + 4)" (* "*") (cast_expression "(undefined4 **)(local_20 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar3 == DAT_00081680) {\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }" (if "if") (parenthesized_expression "(puVar3 == DAT_00081680)" (( "(") (binary_expression "puVar3 == DAT_00081680" (identifier "puVar3") (== "==") (identifier "DAT_00081680")) () ")")) (compound_statement "{\n      pbVar5 = *(byte **)(local_20 + 0xc);\n      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;\n      if (7 < DAT_0008188c) goto LAB_0003c418;\n      iVar2 = *(int *)(pbVar5 + 4);\n      goto LAB_0003c49c;\n    }" ({ "{") (expression_statement "pbVar5 = *(byte **)(local_20 + 0xc);" (assignment_expression "pbVar5 = *(byte **)(local_20 + 0xc)" (identifier "pbVar5") (= "=") (pointer_expression "*(byte **)(local_20 + 0xc)" (* "*") (cast_expression "(byte **)(local_20 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*pbVar5 & 4) != 0) goto LAB_0003c478;" (if "if") (parenthesized_expression "((*pbVar5 & 4) != 0)" (( "(") (binary_expression "(*pbVar5 & 4) != 0" (parenthesized_expression "(*pbVar5 & 4)" (( "(") (binary_expression "*pbVar5 & 4" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c478;" (goto "goto") (statement_identifier "LAB_0003c478") (; ";"))) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" (if "if") (parenthesized_expression "(7 < DAT_0008188c)" (( "(") (binary_expression "7 < DAT_0008188c" (number_literal "7") (< "<") (identifier "DAT_0008188c")) () ")")) (goto_statement "goto LAB_0003c418;" (goto "goto") (statement_identifier "LAB_0003c418") (; ";"))) (expression_statement "iVar2 = *(int *)(pbVar5 + 4);" (assignment_expression "iVar2 = *(int *)(pbVar5 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pbVar5 + 4)" (* "*") (cast_expression "(int *)(pbVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar5 + 4)" (( "(") (binary_expression "pbVar5 + 4" (identifier "pbVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0003c49c;" (goto "goto") (statement_identifier "LAB_0003c49c") (; ";")) (} "}"))) (if_statement "if ((bVar1 & 4) != 0) goto LAB_0003c3e2;" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c3e2;" (goto "goto") (statement_identifier "LAB_0003c3e2") (; ";"))) (if_statement "if (7 < DAT_0008188c) goto LAB_0003c418;" (if "if") (parenthesized_expression "(7 < DAT_0008188c)" (( "(") (binary_expression "7 < DAT_0008188c" (number_literal "7") (< "<") (identifier "DAT_0008188c")) () ")")) (goto_statement "goto LAB_0003c418;" (goto "goto") (statement_identifier "LAB_0003c418") (; ";"))) (} "}")))) (if_statement "if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;" (if "if") (parenthesized_expression "(puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8))" (( "(") (binary_expression "puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (identifier "puVar3") (== "==") (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0xa8)" (( "(") (binary_expression "PTR__bfd_std_section_00077fa0 + 0xa8" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0xa8")) () ")")))) () ")")) (goto_statement "goto LAB_0003c418;" (goto "goto") (statement_identifier "LAB_0003c418") (; ";"))) (expression_statement "DAT_0008188c = DAT_0008188c + 1;" (assignment_expression "DAT_0008188c = DAT_0008188c + 1" (identifier "DAT_0008188c") (= "=") (binary_expression "DAT_0008188c + 1" (identifier "DAT_0008188c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = &DAT_00056b65;" (assignment_expression "puVar7 = &DAT_00056b65" (identifier "puVar7") (= "=") (pointer_expression "&DAT_00056b65" (& "&") (identifier "DAT_00056b65"))) (; ";")) (expression_statement "fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);" (call_expression "fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65)" (identifier "fprintf") (argument_list "(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65)" (( "(") (identifier "param_1") (, ",") (string_literal ""\n%*s<"" (" """) (escape_sequence "\n") (string_content "%*s<") (" """)) (, ",") (binary_expression "DAT_0008188c * 4" (identifier "DAT_0008188c") (* "*") (number_literal "4")) (, ",") (pointer_expression "&DAT_00056b65" (& "&") (identifier "DAT_00056b65")) () ")"))) (; ";")) (if_statement "if ((*local_20 & 1) == 0) {\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }\n  else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" (if "if") (parenthesized_expression "((*local_20 & 1) == 0)" (( "(") (binary_expression "(*local_20 & 1) == 0" (parenthesized_expression "(*local_20 & 1)" (( "(") (binary_expression "*local_20 & 1" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);\n  }" ({ "{") (labeled_statement "LAB_0003c7bb:\n    FUN_0003bd10(param_1,local_20 + 8);" (statement_identifier "LAB_0003c7bb") (: ":") (expression_statement "FUN_0003bd10(param_1,local_20 + 8);" (call_expression "FUN_0003bd10(param_1,local_20 + 8)" (identifier "FUN_0003bd10") (argument_list "(param_1,local_20 + 8)" (( "(") (identifier "param_1") (, ",") (binary_expression "local_20 + 8" (identifier "local_20") (+ "+") (number_literal "8")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" (else "else") (compound_statement "{\n    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }\n    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);\n  }" ({ "{") (if_statement "if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }" (if "if") (parenthesized_expression "(*(undefined4 **)(local_20 + 4) == DAT_00081680)" (( "(") (binary_expression "*(undefined4 **)(local_20 + 4) == DAT_00081680" (pointer_expression "*(undefined4 **)(local_20 + 4)" (* "*") (cast_expression "(undefined4 **)(local_20 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "DAT_00081680")) () ")")) (compound_statement "{\n      local_20 = *(byte **)(local_20 + 0xc);\n      goto LAB_0003c7bb;\n    }" ({ "{") (expression_statement "local_20 = *(byte **)(local_20 + 0xc);" (assignment_expression "local_20 = *(byte **)(local_20 + 0xc)" (identifier "local_20") (= "=") (pointer_expression "*(byte **)(local_20 + 0xc)" (* "*") (cast_expression "(byte **)(local_20 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_0003c7bb;" (goto "goto") (statement_identifier "LAB_0003c7bb") (; ";")) (} "}"))) (expression_statement "fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);" (call_expression "fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7)" (identifier "fprintf") (argument_list "(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7)" (( "(") (identifier "param_1") (, ",") (string_literal ""constant %lx"" (" """) (string_content "constant %lx") (" """)) (, ",") (pointer_expression "*(undefined4 *)(local_20 + 0x10)" (* "*") (cast_expression "(undefined4 *)(local_20 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0x10)" (( "(") (binary_expression "local_20 + 0x10" (identifier "local_20") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "puVar7") () ")"))) (; ";")) (} "}")))) (expression_statement "fputc(0x3e,param_1);" (call_expression "fputc(0x3e,param_1)" (identifier "fputc") (argument_list "(0x3e,param_1)" (( "(") (number_literal "0x3e") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "DAT_0008188c = DAT_0008188c + -1;" (assignment_expression "DAT_0008188c = DAT_0008188c + -1" (identifier "DAT_0008188c") (= "=") (binary_expression "DAT_0008188c + -1" (identifier "DAT_0008188c") (+ "+") (number_literal "-1"))) (; ";")) (labeled_statement "LAB_0003c418:\n  fflush(param_1);" (statement_identifier "LAB_0003c418") (: ":") (expression_statement "fflush(param_1);" (call_expression "fflush(param_1)" (identifier "fflush") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *file,type_2 *sym)

{
  type_3 sVar1;
  type_4 var_6;
  int var_8;
  type_5 var_3;
  type_6 vVar5;
  type_2 *var_1;
  type_7 *paVar7;
  type_8 *puVar8;
  type_2 *var_12;
  
  var_3 = (type_5)sym->bsym;
  if (((type_9)sym->sy_flags & 1) == 0) {
LAB_0003c1e6:
    var_1 = (type_2 *)var_3->id;
    if (var_1 == (type_2 *)0x0) goto LAB_0003c1d4;
LAB_0003c1ed:
    if (*(char *)&var_1->sy_flags == '\0') {
      var_1 = (type_2 *)"(unnamed)";
    }
  }
  else {
    if (var_2 == var_3) {
      var_3 = (type_5)((sym->sy_value).X_op_symbol)->bsym;
      goto LAB_0003c1e6;
    }
    var_1 = (sym->sy_value).X_add_symbol;
    if (var_1 != (type_2 *)0x0) goto LAB_0003c1ed;
LAB_0003c1d4:
    var_1 = (type_2 *)"(unnamed)";
  }
  var_4(&DAT_0005a011,1,4,(type_1 *)file);
  var_5((type_1 *)file,"%08lx",sym);
  var_5((type_1 *)file," %s",var_1);
  var_6 = *(type_4 *)&sym->sy_flags;
  var_12 = sym;
  if (((var_6 & 1) == 0) || (var_12 = (sym->sy_value).X_op_symbol, (type_5)sym->bsym == var_2)
     ) {
    if (var_12->sy_frag != &zero_address_frag) {
      var_4(" frag ",1,6,(type_1 *)file);
      var_5((type_1 *)file,"%08lx",var_12->sy_frag);
    }
    var_6 = *(type_4 *)&var_12->sy_flags;
    if ((var_6 & 2) != 0) {
      var_4(" written",1,8,(type_1 *)file);
      var_6 = *(type_4 *)&var_12->sy_flags;
    }
    if ((var_6 & 4) == 0) {
      if ((var_6 & 8) != 0) {
        var_4(" resolving",1,10,(type_1 *)file);
        var_6 = *(type_4 *)&var_12->sy_flags;
      }
    }
    else {
      var_4(" resolved",1,9,(type_1 *)file);
      var_6 = *(type_4 *)&var_12->sy_flags;
    }
    if ((var_6 & 0x10) == 0) {
      if ((var_6 & 0x20) == 0) goto LAB_0003c325;
LAB_0003c4c8:
      var_4(" used",1,5,(type_1 *)file);
      var_8 = var_7(var_12);
      if (var_8 != 0) goto LAB_0003c4f0;
LAB_0003c339:
      var_8 = var_9(var_12);
      if (var_8 == 0) goto LAB_0003c34d;
LAB_0003c518:
      var_4(" extern",1,7,(type_1 *)file);
      var_8 = var_10(var_12);
    }
    else {
      var_4(" used-in-reloc",1,0xe,(type_1 *)file);
      if (((type_9)var_12->sy_flags & 0x20) != 0) goto LAB_0003c4c8;
LAB_0003c325:
      var_8 = var_7(var_12);
      if (var_8 == 0) goto LAB_0003c339;
LAB_0003c4f0:
      var_4(" local",1,6,(type_1 *)file);
      var_8 = var_9(var_12);
      if (var_8 != 0) goto LAB_0003c518;
LAB_0003c34d:
      var_8 = var_10(var_12);
    }
    if (var_8 != 0) {
      var_4(&DAT_0005a05f,1,5,(type_1 *)file);
    }
    var_3 = (type_5)var_12->bsym;
    if (((type_9)var_12->sy_flags & 1) == 0) {
      if (((type_9)var_3->next & 4) != 0) {
LAB_0003c6e0:
        var_4(" debug",1,6,(type_1 *)file);
        var_3 = (type_5)var_12->bsym;
        if (((type_9)var_12->sy_flags & 1) != 0) {
          if (var_3 == var_2) {
            var_1 = (var_12->sy_value).X_op_symbol;
            goto LAB_0003c790;
          }
          goto LAB_0003c440;
        }
      }
      if (var_3->prev != (type_10 *)(var_11 + 0xa8)) goto LAB_0003c454;
      goto LAB_0003c38d;
    }
    if (var_2 == var_3) {
      var_1 = (var_12->sy_value).X_op_symbol;
      if ((var_1->bsym->flags & 4) != 0) goto LAB_0003c6e0;
LAB_0003c790:
      if (var_1->bsym->section == (type_10 *)(var_11 + 0xa8))
      goto LAB_0003c29f;
LAB_0003c454:
      var_4(" defined",1,8,(type_1 *)file);
      goto LAB_0003c29f;
    }
LAB_0003c440:
    if (var_3 != (type_5)(var_11 + 0xa8)) goto LAB_0003c454;
LAB_0003c2b4:
    if (var_2 == var_3) {
      if (((((var_12->sy_value).X_op_symbol)->sy_flags).field_0x1 & 2) != 0) {
LAB_0003c5a0:
        var_4(" weakrefr",1,9,(type_1 *)file);
        if (((type_9)var_12->sy_flags & 1) == 0) goto LAB_0003c397;
        var_3 = (type_5)var_12->bsym;
        if (var_2 != var_3) goto LAB_0003c3ab;
      }
      if (((((var_12->sy_value).X_op_symbol)->sy_flags).field_0x1 & 4) != 0) goto LAB_0003c5d8;
LAB_0003c73a:
      var_1 = (var_12->sy_value).X_op_symbol;
      goto LAB_0003c3a5;
    }
  }
  else {
    if ((var_12 != (type_2 *)0x0) && (var_12 != (type_2 *)PTR_zero_address_frag_00077f64)) {
      var_4(" frag ",1,6,(type_1 *)file);
      var_5((type_1 *)file,"%08lx",(sym->sy_value).X_op_symbol);
      var_6 = *(type_4 *)&sym->sy_flags;
    }
    if ((var_6 & 4) != 0) {
      var_4(" resolved",1,9,(type_1 *)file);
    }
    var_4(" local",1,6,(type_1 *)file);
    var_12 = sym;
LAB_0003c29f:
    if (((type_9)var_12->sy_flags & 1) != 0) {
      var_3 = (type_5)var_12->bsym;
      goto LAB_0003c2b4;
    }
LAB_0003c38d:
    if (((var_12->sy_flags).field_0x1 & 2) != 0) goto LAB_0003c5a0;
LAB_0003c397:
    var_1 = var_12;
    if (((var_12->sy_flags).field_0x1 & 4) != 0) {
LAB_0003c5d8:
      var_4(" weakrefd",1,9,(type_1 *)file);
      var_1 = var_12;
      if (((type_9)var_12->sy_flags & 1) != 0) {
        var_3 = (type_5)var_12->bsym;
        if (var_2 == var_3) goto LAB_0003c73a;
        goto LAB_0003c3ab;
      }
    }
LAB_0003c3a5:
    var_3 = var_1->bsym->section;
  }
LAB_0003c3ab:
  var_5((type_1 *)file," %s",var_3->name);
  sVar1 = var_12->sy_flags;
  if (((type_9)sVar1 & 1) == 0) {
    var_1 = var_12;
    if (((type_9)sVar1 & 4) != 0) {
LAB_0003c478:
      var_3 = var_1->bsym->section;
LAB_0003c3e2:
      if ((var_3 != (type_5)(var_11 + 0xa8)) && (var_13 != var_3)) {
        vVar5 = var_14(var_12);
        var_5((type_1 *)file," %lx",vVar5);
      }
      goto LAB_0003c418;
    }
    if (7 < var_15) goto LAB_0003c418;
    paVar7 = var_12->bsym;
LAB_0003c49c:
    var_3 = paVar7->section;
  }
  else {
    var_3 = (type_5)var_12->bsym;
    if (var_3 == var_2) {
      var_1 = (var_12->sy_value).X_op_symbol;
      if (((type_9)var_1->sy_flags & 4) != 0) goto LAB_0003c478;
      if (7 < var_15) goto LAB_0003c418;
      paVar7 = var_1->bsym;
      goto LAB_0003c49c;
    }
    if (((type_9)sVar1 & 4) != 0) goto LAB_0003c3e2;
    if (7 < var_15) goto LAB_0003c418;
  }
  if (var_3 == (type_5)(var_11 + 0xa8)) goto LAB_0003c418;
  var_15 = var_15 + 1;
  puVar8 = &DAT_00056b65;
  var_5((type_1 *)file,"\n%*s<",var_15 * 4,&DAT_00056b65);
  if (((type_9)var_12->sy_flags & 1) == 0) {
LAB_0003c7bb:
    var_16(file,&var_12->sy_value);
  }
  else {
    if ((type_5)var_12->bsym == var_2) {
      var_12 = (var_12->sy_value).X_op_symbol;
      goto LAB_0003c7bb;
    }
    var_5((type_1 *)file,"constant %lx",(var_12->sy_value).X_add_number,puVar8);
  }
  var_17(0x3e,(type_1 *)file);
  var_15 = var_15 + -1;
LAB_0003c418:
  var_18((type_1 *)file);
  return;
}


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

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

void MASKED(FILE *param_1,byte *param_2)

{
  byte bVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  byte *pbVar5;
  char *pcVar6;
  undefined *puVar7;
  byte *local_20;
  
  puVar3 = *(undefined4 **)(param_2 + 4);
  if ((*param_2 & 1) == 0) {
LAB_0003c1e6:
    pcVar6 = (char *)puVar3[1];
    if (pcVar6 == (char *)0x0) goto LAB_0003c1d4;
LAB_0003c1ed:
    if (*pcVar6 == '\0') {
      pcVar6 = "(unnamed)";
    }
  }
  else {
    if (DAT_00081680 == puVar3) {
      puVar3 = *(undefined4 **)(*(int *)(param_2 + 0xc) + 4);
      goto LAB_0003c1e6;
    }
    pcVar6 = *(char **)(param_2 + 8);
    if (pcVar6 != (char *)0x0) goto LAB_0003c1ed;
LAB_0003c1d4:
    pcVar6 = "(unnamed)";
  }
  fwrite(&DAT_0005a011,1,4,param_1);
  fprintf(param_1,"%08lx",param_2);
  fprintf(param_1," %s",pcVar6);
  bVar1 = *param_2;
  local_20 = param_2;
  if (((bVar1 & 1) == 0) ||
     (local_20 = *(byte **)(param_2 + 0xc), *(undefined4 **)(param_2 + 4) == DAT_00081680)) {
    if (*(undefined **)(local_20 + 0x20) != &DAT_00081620) {
      fwrite(" frag ",1,6,param_1);
      fprintf(param_1,"%08lx",*(undefined4 *)(local_20 + 0x20));
    }
    bVar1 = *local_20;
    if ((bVar1 & 2) != 0) {
      fwrite(" written",1,8,param_1);
      bVar1 = *local_20;
    }
    if ((bVar1 & 4) == 0) {
      if ((bVar1 & 8) != 0) {
        fwrite(" resolving",1,10,param_1);
        bVar1 = *local_20;
      }
    }
    else {
      fwrite(" resolved",1,9,param_1);
      bVar1 = *local_20;
    }
    if ((bVar1 & 0x10) == 0) {
      if ((bVar1 & 0x20) == 0) goto LAB_0003c325;
LAB_0003c4c8:
      fwrite(" used",1,5,param_1);
      iVar2 = FUN_000386d0(local_20);
      if (iVar2 != 0) goto LAB_0003c4f0;
LAB_0003c339:
      iVar2 = FUN_000383f0(local_20);
      if (iVar2 == 0) goto LAB_0003c34d;
LAB_0003c518:
      fwrite(" extern",1,7,param_1);
      iVar2 = FUN_00038460(local_20);
    }
    else {
      fwrite(" used-in-reloc",1,0xe,param_1);
      if ((*local_20 & 0x20) != 0) goto LAB_0003c4c8;
LAB_0003c325:
      iVar2 = FUN_000386d0(local_20);
      if (iVar2 == 0) goto LAB_0003c339;
LAB_0003c4f0:
      fwrite(" local",1,6,param_1);
      iVar2 = FUN_000383f0(local_20);
      if (iVar2 != 0) goto LAB_0003c518;
LAB_0003c34d:
      iVar2 = FUN_00038460(local_20);
    }
    if (iVar2 != 0) {
      fwrite(" weak",1,5,param_1);
    }
    puVar3 = *(undefined4 **)(local_20 + 4);
    if ((*local_20 & 1) == 0) {
      if ((*(byte *)(puVar3 + 3) & 4) != 0) {
LAB_0003c6e0:
        fwrite(" debug",1,6,param_1);
        puVar3 = *(undefined4 **)(local_20 + 4);
        if ((*local_20 & 1) != 0) {
          if (puVar3 == DAT_00081680) {
            iVar2 = *(int *)(local_20 + 0xc);
            goto LAB_0003c790;
          }
          goto LAB_0003c440;
        }
      }
      if ((undefined *)puVar3[4] != PTR__bfd_std_section_00077fa0 + 0xa8) goto LAB_0003c454;
      goto LAB_0003c38d;
    }
    if (DAT_00081680 == puVar3) {
      iVar2 = *(int *)(local_20 + 0xc);
      if ((*(byte *)(*(int *)(iVar2 + 4) + 0xc) & 4) != 0) goto LAB_0003c6e0;
LAB_0003c790:
      if (*(undefined **)(*(int *)(iVar2 + 4) + 0x10) == PTR__bfd_std_section_00077fa0 + 0xa8)
      goto LAB_0003c29f;
LAB_0003c454:
      fwrite(" defined",1,8,param_1);
      goto LAB_0003c29f;
    }
LAB_0003c440:
    if (puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c454;
LAB_0003c2b4:
    if (DAT_00081680 == puVar3) {
      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 2) != 0) {
LAB_0003c5a0:
        fwrite(" weakrefr",1,9,param_1);
        if ((*local_20 & 1) == 0) goto LAB_0003c397;
        puVar3 = *(undefined4 **)(local_20 + 4);
        if (DAT_00081680 != puVar3) goto LAB_0003c3ab;
      }
      if ((*(byte *)(*(int *)(local_20 + 0xc) + 1) & 4) != 0) goto LAB_0003c5d8;
LAB_0003c73a:
      pbVar5 = *(byte **)(local_20 + 0xc);
      goto LAB_0003c3a5;
    }
  }
  else {
    if ((local_20 != (byte *)0x0) && (local_20 != PTR_DAT_00077f64)) {
      fwrite(" frag ",1,6,param_1);
      fprintf(param_1,"%08lx",*(undefined4 *)(param_2 + 0xc));
      bVar1 = *param_2;
    }
    if ((bVar1 & 4) != 0) {
      fwrite(" resolved",1,9,param_1);
    }
    fwrite(" local",1,6,param_1);
    local_20 = param_2;
LAB_0003c29f:
    if ((*local_20 & 1) != 0) {
      puVar3 = *(undefined4 **)(local_20 + 4);
      goto LAB_0003c2b4;
    }
LAB_0003c38d:
    if ((local_20[1] & 2) != 0) goto LAB_0003c5a0;
LAB_0003c397:
    pbVar5 = local_20;
    if ((local_20[1] & 4) != 0) {
LAB_0003c5d8:
      fwrite(" weakrefd",1,9,param_1);
      pbVar5 = local_20;
      if ((*local_20 & 1) != 0) {
        puVar3 = *(undefined4 **)(local_20 + 4);
        if (DAT_00081680 == puVar3) goto LAB_0003c73a;
        goto LAB_0003c3ab;
      }
    }
LAB_0003c3a5:
    puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);
  }
LAB_0003c3ab:
  fprintf(param_1," %s",*puVar3);
  bVar1 = *local_20;
  if ((bVar1 & 1) == 0) {
    pbVar5 = local_20;
    if ((bVar1 & 4) != 0) {
LAB_0003c478:
      puVar3 = *(undefined4 **)(*(int *)(pbVar5 + 4) + 0x10);
LAB_0003c3e2:
      if ((puVar3 != (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) &&
         (DAT_000815e0 != puVar3)) {
        uVar4 = FUN_00039e90();
        fprintf(param_1," %lx",uVar4);
      }
      goto LAB_0003c418;
    }
    if (7 < DAT_0008188c) goto LAB_0003c418;
    iVar2 = *(int *)(local_20 + 4);
LAB_0003c49c:
    puVar3 = *(undefined4 **)(iVar2 + 0x10);
  }
  else {
    puVar3 = *(undefined4 **)(local_20 + 4);
    if (puVar3 == DAT_00081680) {
      pbVar5 = *(byte **)(local_20 + 0xc);
      if ((*pbVar5 & 4) != 0) goto LAB_0003c478;
      if (7 < DAT_0008188c) goto LAB_0003c418;
      iVar2 = *(int *)(pbVar5 + 4);
      goto LAB_0003c49c;
    }
    if ((bVar1 & 4) != 0) goto LAB_0003c3e2;
    if (7 < DAT_0008188c) goto LAB_0003c418;
  }
  if (puVar3 == (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0xa8)) goto LAB_0003c418;
  DAT_0008188c = DAT_0008188c + 1;
  puVar7 = &DAT_00056b65;
  fprintf(param_1,"\n%*s<",DAT_0008188c * 4,&DAT_00056b65);
  if ((*local_20 & 1) == 0) {
LAB_0003c7bb:
    FUN_0003bd10(param_1,local_20 + 8);
  }
  else {
    if (*(undefined4 **)(local_20 + 4) == DAT_00081680) {
      local_20 = *(byte **)(local_20 + 0xc);
      goto LAB_0003c7bb;
    }
    fprintf(param_1,"constant %lx",*(undefined4 *)(local_20 + 0x10),puVar7);
  }
  fputc(0x3e,param_1);
  DAT_0008188c = DAT_0008188c + -1;
LAB_0003c418:
  fflush(param_1);
  return;
}

