
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void lang_map(void)

{
  lang_output_section_statement_type *os;
  char *pcVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint *puVar6;
  uint *puVar7;
  lang_statement_union *plVar8;
  uint uVar9;
  uint uVar10;
  bfd_section *i;
  memory_region_struct *pmVar11;
  bool bVar12;
  bfd_size_type bVar13;
  char buf [100];
  
  if (file_chain.head != (lang_statement_union *)0x0) {
    bVar12 = false;
    plVar8 = file_chain.head;
    do {
      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&
              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&
             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {
        do {
          if (((i->output_section == (bfd_section *)0x0) ||
              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {
            if (!bVar12) {
              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);
              fprintf((FILE *)config.map_file,pcVar1);
            }
            print_input_section(i,1);
            bVar12 = true;
          }
          i = i->next;
        } while (i != (bfd_section *)0x0);
        plVar8 = (plVar8->wild_statement).children.head;
        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;
      }
      plVar8 = (plVar8->wild_statement).children.head;
    } while (plVar8 != (lang_statement_union *)0x0);
  }
LAB_00023825:
  pcVar1 = (char *)dcgettext(0,"\nMemory Configuration\n\n",5);
  minfo(pcVar1);
  uVar2 = dcgettext(0,"Attributes",5);
  uVar3 = dcgettext(0,"Length",5);
  uVar4 = dcgettext(0,"Origin",5);
  uVar5 = dcgettext(0,&DAT_0004c03b,5);
  fprintf((FILE *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);
  if (lang_memory_region_list != (lang_memory_region_type *)0x0) {
    pmVar11 = lang_memory_region_list;
    do {
      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);
      sprintf(buf,"%08lx",pmVar11->origin);
      minfo("0x%s ",buf);
      puVar7 = (uint *)buf;
      do {
        puVar6 = puVar7;
        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;
        uVar10 = uVar9 & 0x80808080;
        puVar7 = puVar6 + 1;
      } while (uVar10 == 0);
      bVar12 = (uVar9 & 0x8080) == 0;
      if (bVar12) {
        uVar10 = uVar10 >> 0x10;
      }
      if (bVar12) {
        puVar7 = (uint *)((int)puVar6 + 6);
      }
      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));
      if (pcVar1 < (char *)0x10) {
        do {
          print_space();
          pcVar1 = pcVar1 + 1;
        } while (pcVar1 != (char *)0x10);
      }
      bVar13 = pmVar11->length;
      minfo("0x%V",bVar13);
      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {
        minfo("        ",bVar13);
        if (pmVar11->flags != 0) {
          print_space();
          lang_map_flags(pmVar11->flags);
        }
        if (pmVar11->not_flags != 0) {
          minfo(" !",bVar13);
          lang_map_flags(pmVar11->not_flags);
        }
      }
      print_nl();
      pmVar11 = pmVar11->next;
    } while (pmVar11 != (memory_region_struct *)0x0);
  }
  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);
  fprintf((FILE *)config.map_file,pcVar1);
  if ((link_info._4_1_ & 0x10) == 0) {
    _obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);
    bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0);
  }
  os = abs_output_section;
  lang_statement_iteration = lang_statement_iteration + 1;
  for (plVar8 = statement_list.head; plVar8 != (lang_statement_union_type *)0x0;
      plVar8 = (plVar8->header).next) {
    print_statement(plVar8,os);
  }
  ldemul_extra_map_file_text(link_info.output_bfd,&link_info,config.map_file);
  return;
}



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

void FUN_00023720(void)

{
  char *pcVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint *puVar6;
  uint *puVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  undefined4 *puVar12;
  bool bVar13;
  uint local_80 [27];
  undefined4 uStack_14;
  
  uStack_14 = 0x2372b;
  if (DAT_0008c77c != 0) {
    bVar13 = false;
    iVar8 = DAT_0008c77c;
    do {
      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&
              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&
             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {
        do {
          if (((*(int *)(iVar11 + 0x3c) == 0) ||
              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&
             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {
            if (!bVar13) {
              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);
              fprintf(DAT_0008cd50,pcVar1);
            }
            FUN_0001f230();
            bVar13 = true;
          }
          iVar11 = *(int *)(iVar11 + 0xc);
        } while (iVar11 != 0);
        iVar8 = *(int *)(iVar8 + 0x18);
        if (iVar8 == 0) goto LAB_00023825;
      }
      iVar8 = *(int *)(iVar8 + 0x18);
    } while (iVar8 != 0);
  }
LAB_00023825:
  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);
  FUN_00031790(uVar2);
  uVar2 = dcgettext(0,"Attributes",5);
  uVar3 = dcgettext(0,"Length",5);
  uVar4 = dcgettext(0,"Origin",5);
  uVar5 = dcgettext(0,&DAT_0004c03b,5);
  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);
  if (DAT_0008c7cc != (undefined4 *)0x0) {
    puVar12 = DAT_0008c7cc;
    do {
      fprintf(DAT_0008cd50,"%-16s ",*puVar12);
      sprintf((char *)local_80,"%08lx",puVar12[4]);
      FUN_00031790("0x%s ",local_80);
      puVar7 = local_80;
      do {
        puVar6 = puVar7;
        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;
        uVar10 = uVar9 & 0x80808080;
        puVar7 = puVar6 + 1;
      } while (uVar10 == 0);
      bVar13 = (uVar9 & 0x8080) == 0;
      if (bVar13) {
        uVar10 = uVar10 >> 0x10;
      }
      if (bVar13) {
        puVar7 = (uint *)((int)puVar6 + 6);
      }
      pcVar1 = (char *)((int)puVar7 +
                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));
      if (pcVar1 < (char *)0x10) {
        do {
          FUN_000307b0();
          pcVar1 = pcVar1 + 1;
        } while (pcVar1 != (char *)0x10);
      }
      uVar2 = puVar12[5];
      FUN_00031790("0x%V",uVar2);
      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {
        FUN_00031790("        ",uVar2);
        if (puVar12[9] != 0) {
          FUN_000307b0();
          FUN_0001e150();
        }
        if (puVar12[10] != 0) {
          FUN_00031790(&DAT_0004c069,uVar2);
          FUN_0001e150();
        }
      }
      FUN_000307e0();
      puVar12 = (undefined4 *)puVar12[2];
    } while (puVar12 != (undefined4 *)0x0);
  }
  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);
  fprintf(DAT_0008cd50,pcVar1);
  if ((DAT_0008cc04 & 0x10) == 0) {
    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);
    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);
  }
  DAT_0008c760 = DAT_0008c760 + 1;
  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {
    FUN_0001f550();
  }
  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a20
ADD EBX,0x688d5
SUB ESP,0xac
MOV EAX,dword ptr [EBX + 0x77c]
TEST EAX,EAX
JZ 0x00023b16
MOV ECX,EAX
LEA ESI,[EBX + 0xd00]
LEA EAX,[EBX + 0xc00]
XOR EDX,EDX
LEA EDI,[EBX + 0xfffbffee]
MOV dword ptr [EBP + 0xffffff6c],EDI
MOV EDI,EAX
MOV dword ptr [EBP + 0xffffff58],EAX
MOV dword ptr [EBP + 0xffffff70],ESI
JMP 0x00023785
MOV EAX,dword ptr [ECX + 0x18]
MOV ECX,EAX
TEST EAX,EAX
JZ 0x00023825
MOV ESI,dword ptr [ECX + 0x10]
MOV EAX,dword ptr [ESI + 0x28]
SHR EAX,0x5
TEST EAX,0x1040
JNZ 0x00023778
TEST byte ptr [ECX + 0x24],0x10
JNZ 0x00023778
MOV ESI,dword ptr [ESI + 0x60]
TEST ESI,ESI
JZ 0x00023778
MOV dword ptr [EBP + 0xffffff74],ECX
JMP 0x000237c8
MOV EDX,0x1
MOV EAX,ESI
CALL 0x0001f230
MOV EDX,0x1
MOV ESI,dword ptr [ESI + 0xc]
TEST ESI,ESI
JZ 0x00023810
MOV EAX,dword ptr [ESI + 0x3c]
TEST EAX,EAX
JZ 0x000237da
MOV ECX,dword ptr [EDI + 0x30]
CMP dword ptr [EAX + 0x94],ECX
JZ 0x000237c1
TEST dword ptr [ESI + 0x14],0x300000
JNZ 0x000237c1
TEST EDX,EDX
JNZ 0x000237b0
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [EBP + 0xffffff6c]
PUSH 0x0
CALL 0x000142e0
POP ECX
POP EDX
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff70]
PUSH dword ptr [EAX + 0x50]
CALL 0x00014730
ADD ESP,0x10
JMP 0x000237b0
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV ECX,EAX
MOV EAX,dword ptr [ECX + 0x18]
MOV ECX,EAX
TEST EAX,EAX
JNZ 0x00023785
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc000a]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV dword ptr [ESP],EAX
CALL 0x00031790
ADD ESP,0xc
LEA EAX,[EBX + 0xfffc0022]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
MOV dword ptr [EBP + 0xffffff74],EAX
LEA EAX,[EBX + 0xfffc002d]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
MOV EDI,EAX
LEA EAX,[EBX + 0xfffc0034]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EBX + 0xfffc003b]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
POP ECX
POP EDX
MOV EDX,dword ptr [EBP + 0xffffff74]
PUSH EDX
PUSH EDI
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffc0040]
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff70]
PUSH dword ptr [EAX + 0x50]
CALL 0x00014730
MOV ESI,dword ptr [EBX + 0x7cc]
ADD ESP,0x20
TEST ESI,ESI
JZ 0x00023a0e
LEA EDX,[EBX + 0xfffc0063]
LEA EAX,[EBX + 0xfffc0056]
MOV dword ptr [EBP + 0xffffff68],EDX
LEA EDX,[EBX + 0xfffbfea3]
MOV dword ptr [EBP + 0xffffff60],EAX
LEA EAX,[EBX + 0xfffc005d]
MOV dword ptr [EBP + 0xffffff64],EDX
LEA EDX,[EBX + 0xfffbfeda]
MOV dword ptr [EBP + 0xffffff6c],EAX
LEA EAX,[EBP + -0x7c]
MOV dword ptr [EBP + 0xffffff5c],EDX
LEA EDX,[EBX + 0xfffc0069]
MOV dword ptr [EBP + 0xffffff54],EDX
MOV dword ptr [EBP + 0xffffff74],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
PUSH dword ptr [ESI]
PUSH dword ptr [EBP + 0xffffff60]
PUSH dword ptr [EAX + 0x50]
CALL 0x00014730
MOV EDI,dword ptr [EBP + 0xffffff74]
ADD ESP,0xc
PUSH dword ptr [ESI + 0x10]
PUSH dword ptr [EBP + 0xffffff6c]
PUSH EDI
CALL 0x000149c0
POP EAX
POP EDX
PUSH EDI
PUSH dword ptr [EBP + 0xffffff68]
CALL 0x00031790
MOV EAX,EDI
MOV ECX,dword ptr [EAX]
ADD EAX,0x4
LEA EDX,[ECX + 0xfefefeff]
NOT ECX
AND EDX,ECX
AND EDX,0x80808080
JZ 0x00023961
MOV ECX,EDX
MOV dword ptr [EBP + 0xffffff74],EDI
SHR ECX,0x10
TEST EDX,0x8080
CMOVZ EDX,ECX
LEA ECX,[EAX + 0x2]
CMOVZ EAX,ECX
MOV ECX,EDX
ADD CL,DL
SBB EAX,0x3
ADD ESP,0x10
SUB EAX,EDI
MOV EDI,EAX
CMP EAX,0xf
JA 0x000239b5
LEA ESI,[ESI]
CALL 0x000307b0
ADD EDI,0x1
CMP EDI,0x10
JNZ 0x000239a8
SUB ESP,0x8
PUSH dword ptr [ESI + 0x14]
PUSH dword ptr [EBP + 0xffffff64]
CALL 0x00031790
MOV EAX,dword ptr [ESI + 0x24]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000239d7
MOV EAX,dword ptr [ESI + 0x28]
TEST EAX,EAX
JZ 0x000239fe
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff5c]
CALL 0x00031790
MOV EAX,dword ptr [ESI + 0x24]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023ac0
MOV EDI,dword ptr [ESI + 0x28]
TEST EDI,EDI
JNZ 0x00023a98
CALL 0x000307e0
MOV ESI,dword ptr [ESI + 0x8]
TEST ESI,ESI
JNZ 0x00023920
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc071c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
POP EDX
POP ECX
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff70]
PUSH dword ptr [EAX + 0x50]
CALL 0x00014730
MOV EAX,dword ptr [EBP + 0xffffff58]
ADD ESP,0x10
TEST byte ptr [EAX + 0x4],0x10
JZ 0x00023ad2
LEA EAX,[EBX + 0xbac]
ADD dword ptr [EBX + 0x760],0x1
MOV ESI,dword ptr [EAX]
MOV EAX,dword ptr [EBX + 0x828]
TEST EAX,EAX
JZ 0x00023a6f
NOP
MOV EDI,EAX
MOV EDX,ESI
CALL 0x0001f550
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JNZ 0x00023a60
MOV EAX,dword ptr [EBP + 0xffffff70]
SUB ESP,0x4
PUSH dword ptr [EAX + 0x50]
MOV EAX,dword ptr [EBP + 0xffffff58]
PUSH EAX
PUSH dword ptr [EAX + 0x30]
CALL 0x00030690
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff54]
CALL 0x00031790
MOV EAX,dword ptr [ESI + 0x28]
CALL 0x0001e150
ADD ESP,0x10
JMP 0x000239fe
CALL 0x000307b0
MOV EAX,dword ptr [ESI + 0x24]
CALL 0x0001e150
JMP 0x000239f3
SUB ESP,0xc
LEA EAX,[EBX + 0x860]
PUSH dword ptr [EBX + 0xffffffac]
PUSH dword ptr [EBX + 0xffffffc0]
PUSH 0x0
PUSH 0x3e8
PUSH EAX
CALL 0x00014340
ADD ESP,0x1c
LEA EAX,[EBX + 0xfff95270]
PUSH 0x0
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff58]
PUSH dword ptr [EAX + 0x1c]
CALL 0x00014830
ADD ESP,0x10
JMP 0x00023a45
LEA EAX,[EBX + 0xc00]
MOV dword ptr [EBP + 0xffffff58],EAX
LEA EAX,[EBX + 0xd00]
MOV dword ptr [EBP + 0xffffff70],EAX
JMP 0x00023825
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00023720(void)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}\n\n" comment (function_definition "void FUN_00023720(void)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}" primitive_type (function_declarator "FUN_00023720(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "uint local_80 [27];" type_identifier (array_declarator "local_80 [27]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2372b;" (assignment_expression "uStack_14 = 0x2372b" identifier = number_literal) ;) (if_statement "if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(DAT_0008c77c != 0)" ( (binary_expression "DAT_0008c77c != 0" identifier != number_literal) )) (compound_statement "{\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "iVar8 = DAT_0008c77c;" (assignment_expression "iVar8 = DAT_0008c77c" identifier = identifier) ;) (do_statement "do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);" do (compound_statement "{\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    }" { (while_statement "while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }" while (parenthesized_expression "((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)))" ( (parenthesized_expression "(((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))" ( (binary_expression "((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)" (parenthesized_expression "((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0))" ( (binary_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)" (binary_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040)" ( (binary_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040" (binary_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5" (pointer_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28)" * (cast_expression "(uint *)(*(int *)(iVar8 + 0x10) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x28)" ( (binary_expression "*(int *)(iVar8 + 0x10) + 0x28" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + number_literal) )))) >> number_literal) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(iVar8 + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x24) & 0x10)" ( (binary_expression "*(byte *)(iVar8 + 0x24) & 0x10" (pointer_expression "*(byte *)(iVar8 + 0x24)" * (cast_expression "(byte *)(iVar8 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)" ( (comma_expression "iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60)" identifier = (pointer_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x60)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x10) + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x60)" ( (binary_expression "*(int *)(iVar8 + 0x10) + 0x60" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }" { (do_statement "do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);" do (compound_statement "{\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        }" { (if_statement "if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }" if (parenthesized_expression "(((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0))" ( (binary_expression "((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)" (parenthesized_expression "((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30))" ( (binary_expression "(*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)" (parenthesized_expression "(*(int *)(iVar11 + 0x3c) == 0)" ( (binary_expression "*(int *)(iVar11 + 0x3c) == 0" (pointer_expression "*(int *)(iVar11 + 0x3c)" * (cast_expression "(int *)(iVar11 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x3c) + 0x94)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x3c) + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x3c) + 0x94)" ( (binary_expression "*(int *)(iVar11 + 0x3c) + 0x94" (pointer_expression "*(int *)(iVar11 + 0x3c)" * (cast_expression "(int *)(iVar11 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) )))) + number_literal) )))) != identifier) ))) )) && (parenthesized_expression "((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)" ( (binary_expression "(*(uint *)(iVar11 + 0x14) & 0x300000) == 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x14) & 0x300000)" ( (binary_expression "*(uint *)(iVar11 + 0x14) & 0x300000" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }" { (if_statement "if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nDiscarded input sections\n\n",5)" identifier (argument_list "(0,"\nDiscarded input sections\n\n",5)" ( number_literal , (string_literal ""\nDiscarded input sections\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(DAT_0008cd50,pcVar1);" (call_expression "fprintf(DAT_0008cd50,pcVar1)" identifier (argument_list "(DAT_0008cd50,pcVar1)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_0001f230();" (call_expression "FUN_0001f230()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) })) (expression_statement "iVar11 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_00023825;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00023825;" goto statement_identifier ;)) })) (expression_statement "iVar8 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);" (assignment_expression "uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5)" identifier = (call_expression "dcgettext(0,"\nMemory Configuration\n\n",5)" identifier (argument_list "(0,"\nMemory Configuration\n\n",5)" ( number_literal , (string_literal ""\nMemory Configuration\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;)) (expression_statement "FUN_00031790(uVar2);" (call_expression "FUN_00031790(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "uVar2 = dcgettext(0,"Attributes",5);" (assignment_expression "uVar2 = dcgettext(0,"Attributes",5)" identifier = (call_expression "dcgettext(0,"Attributes",5)" identifier (argument_list "(0,"Attributes",5)" ( number_literal , (string_literal ""Attributes"" " string_content ") , number_literal )))) ;) (expression_statement "uVar3 = dcgettext(0,"Length",5);" (assignment_expression "uVar3 = dcgettext(0,"Length",5)" identifier = (call_expression "dcgettext(0,"Length",5)" identifier (argument_list "(0,"Length",5)" ( number_literal , (string_literal ""Length"" " string_content ") , number_literal )))) ;) (expression_statement "uVar4 = dcgettext(0,"Origin",5);" (assignment_expression "uVar4 = dcgettext(0,"Origin",5)" identifier = (call_expression "dcgettext(0,"Origin",5)" identifier (argument_list "(0,"Origin",5)" ( number_literal , (string_literal ""Origin"" " string_content ") , number_literal )))) ;) (expression_statement "uVar5 = dcgettext(0,&DAT_0004c03b,5);" (assignment_expression "uVar5 = dcgettext(0,&DAT_0004c03b,5)" identifier = (call_expression "dcgettext(0,&DAT_0004c03b,5)" identifier (argument_list "(0,&DAT_0004c03b,5)" ( number_literal , (pointer_expression "&DAT_0004c03b" & identifier) , number_literal )))) ;) (expression_statement "fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);" (call_expression "fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" identifier (argument_list "(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" ( identifier , (string_literal ""%-16s %-18s %-18s %s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }" if (parenthesized_expression "(DAT_0008c7cc != (undefined4 *)0x0)" ( (binary_expression "DAT_0008c7cc != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }" { (expression_statement "puVar12 = DAT_0008c7cc;" (assignment_expression "puVar12 = DAT_0008c7cc" identifier = identifier) ;) (do_statement "do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);" do (compound_statement "{\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    }" { (expression_statement "fprintf(DAT_0008cd50,"%-16s ",*puVar12);" (call_expression "fprintf(DAT_0008cd50,"%-16s ",*puVar12)" identifier (argument_list "(DAT_0008cd50,"%-16s ",*puVar12)" ( identifier , (string_literal ""%-16s "" " string_content ") , (pointer_expression "*puVar12" * identifier) ))) ;) (expression_statement "sprintf((char *)local_80,"%08lx",puVar12[4]);" (call_expression "sprintf((char *)local_80,"%08lx",puVar12[4])" identifier (argument_list "((char *)local_80,"%08lx",puVar12[4])" ( (cast_expression "(char *)local_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%08lx"" " string_content ") , (subscript_expression "puVar12[4]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00031790("0x%s ",local_80);" (call_expression "FUN_00031790("0x%s ",local_80)" identifier (argument_list "("0x%s ",local_80)" ( (string_literal ""0x%s "" " string_content ") , identifier ))) ;) (expression_statement "puVar7 = local_80;" (assignment_expression "puVar7 = local_80" identifier = identifier) ;) (do_statement "do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);" do (compound_statement "{\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      }" { (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) (expression_statement "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;" (assignment_expression "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6" identifier = (binary_expression "*puVar6 + 0xfefefeff & ~*puVar6" (binary_expression "*puVar6 + 0xfefefeff" (pointer_expression "*puVar6" * identifier) + number_literal) & (unary_expression "~*puVar6" ~ (pointer_expression "*puVar6" * identifier)))) ;) (expression_statement "uVar10 = uVar9 & 0x80808080;" (assignment_expression "uVar10 = uVar9 & 0x80808080" identifier = (binary_expression "uVar9 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) ;) (expression_statement "bVar13 = (uVar9 & 0x8080) == 0;" (assignment_expression "bVar13 = (uVar9 & 0x8080) == 0" identifier = (binary_expression "(uVar9 & 0x8080) == 0" (parenthesized_expression "(uVar9 & 0x8080)" ( (binary_expression "uVar9 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n        uVar10 = uVar10 >> 0x10;\n      }" { (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" identifier = (binary_expression "uVar10 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" { (expression_statement "puVar7 = (uint *)((int)puVar6 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar6 + 6)" identifier = (cast_expression "(uint *)((int)puVar6 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 6)" ( (binary_expression "(int)puVar6 + 6" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));" (assignment_expression "pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" identifier = (cast_expression "(char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" ( (binary_expression "(int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80)" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar10,(byte)uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" identifier (argument_list "((byte)uVar10,(byte)uVar10)" ( (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" { (do_statement "do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);" do (compound_statement "{\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        }" { (expression_statement "FUN_000307b0();" (call_expression "FUN_000307b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar1 = pcVar1 + 1;" (assignment_expression "pcVar1 = pcVar1 + 1" identifier = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar1 != (char *)0x10)" ( (binary_expression "pcVar1 != (char *)0x10" identifier != (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "uVar2 = puVar12[5];" (assignment_expression "uVar2 = puVar12[5]" identifier = (subscript_expression "puVar12[5]" identifier [ number_literal ])) ;) (expression_statement "FUN_00031790("0x%V",uVar2);" (call_expression "FUN_00031790("0x%V",uVar2)" identifier (argument_list "("0x%V",uVar2)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (if_statement "if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }" if (parenthesized_expression "((puVar12[9] != 0) || (puVar12[10] != 0))" ( (binary_expression "(puVar12[9] != 0) || (puVar12[10] != 0)" (parenthesized_expression "(puVar12[9] != 0)" ( (binary_expression "puVar12[9] != 0" (subscript_expression "puVar12[9]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(puVar12[10] != 0)" ( (binary_expression "puVar12[10] != 0" (subscript_expression "puVar12[10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }" { (expression_statement "FUN_00031790("        ",uVar2);" (call_expression "FUN_00031790("        ",uVar2)" identifier (argument_list "("        ",uVar2)" ( (string_literal ""        "" " string_content ") , identifier ))) ;) (if_statement "if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }" if (parenthesized_expression "(puVar12[9] != 0)" ( (binary_expression "puVar12[9] != 0" (subscript_expression "puVar12[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_000307b0();\n          FUN_0001e150();\n        }" { (expression_statement "FUN_000307b0();" (call_expression "FUN_000307b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001e150();" (call_expression "FUN_0001e150()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }" if (parenthesized_expression "(puVar12[10] != 0)" ( (binary_expression "puVar12[10] != 0" (subscript_expression "puVar12[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }" { (expression_statement "FUN_00031790(&DAT_0004c069,uVar2);" (call_expression "FUN_00031790(&DAT_0004c069,uVar2)" identifier (argument_list "(&DAT_0004c069,uVar2)" ( (pointer_expression "&DAT_0004c069" & identifier) , identifier ))) ;) (expression_statement "FUN_0001e150();" (call_expression "FUN_0001e150()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar12 = (undefined4 *)puVar12[2];" (assignment_expression "puVar12 = (undefined4 *)puVar12[2]" identifier = (cast_expression "(undefined4 *)puVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nLinker script and memory map\n\n",5)" identifier (argument_list "(0,"\nLinker script and memory map\n\n",5)" ( number_literal , (string_literal ""\nLinker script and memory map\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(DAT_0008cd50,pcVar1);" (call_expression "fprintf(DAT_0008cd50,pcVar1)" identifier (argument_list "(DAT_0008cd50,pcVar1)" ( identifier , identifier ))) ;) (if_statement "if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }" if (parenthesized_expression "((DAT_0008cc04 & 0x10) == 0)" ( (binary_expression "(DAT_0008cc04 & 0x10) == 0" (parenthesized_expression "(DAT_0008cc04 & 0x10)" ( (binary_expression "DAT_0008cc04 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }" { (expression_statement "_obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);" (call_expression "_obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" identifier (argument_list "(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" ( (pointer_expression "&DAT_0008c860" & identifier) , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);" (call_expression "bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0)" identifier (argument_list "(DAT_0008cc1c,FUN_00021270,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "DAT_0008c760 = DAT_0008c760 + 1;" (assignment_expression "DAT_0008c760 = DAT_0008c760 + 1" identifier = (binary_expression "DAT_0008c760 + 1" identifier + number_literal)) ;) (for_statement "for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }" for ( (assignment_expression "puVar12 = DAT_0008c828" identifier = identifier) ; (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar12 = (undefined4 *)*puVar12" identifier = (cast_expression "(undefined4 *)*puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ) (compound_statement "{\n    FUN_0001f550();\n  }" { (expression_statement "FUN_0001f550();" (call_expression "FUN_0001f550()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);" (call_expression "FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50)" identifier (argument_list "(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50)" ( identifier , (pointer_expression "&DAT_0008cc00" & identifier) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid lang_map(void)\n\n{\n  lang_output_section_statement_type *os;\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  lang_statement_union *plVar8;\n  uint uVar9;\n  uint uVar10;\n  bfd_section *i;\n  memory_region_struct *pmVar11;\n  bool bVar12;\n  bfd_size_type bVar13;\n  char buf [100];\n  \n  if (file_chain.head != (lang_statement_union *)0x0) {\n    bVar12 = false;\n    plVar8 = file_chain.head;\n    do {\n      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }\n      plVar8 = (plVar8->wild_statement).children.head;\n    } while (plVar8 != (lang_statement_union *)0x0);\n  }\nLAB_00023825:\n  pcVar1 = (char *)dcgettext(0,"\nMemory Configuration\n\n",5);\n  minfo(pcVar1);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf((FILE *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (lang_memory_region_list != (lang_memory_region_type *)0x0) {\n    pmVar11 = lang_memory_region_list;\n    do {\n      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);\n      sprintf(buf,"%08lx",pmVar11->origin);\n      minfo("0x%s ",buf);\n      puVar7 = (uint *)buf;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar12 = (uVar9 & 0x8080) == 0;\n      if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      bVar13 = pmVar11->length;\n      minfo("0x%V",bVar13);\n      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }\n      print_nl();\n      pmVar11 = pmVar11->next;\n    } while (pmVar11 != (memory_region_struct *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf((FILE *)config.map_file,pcVar1);\n  if ((link_info._4_1_ & 0x10) == 0) {\n    _obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0);\n  }\n  os = abs_output_section;\n  lang_statement_iteration = lang_statement_iteration + 1;\n  for (plVar8 = statement_list.head; plVar8 != (lang_statement_union_type *)0x0;\n      plVar8 = (plVar8->header).next) {\n    print_statement(plVar8,os);\n  }\n  ldemul_extra_map_file_text(link_info.output_bfd,&link_info,config.map_file);\n  return;\n}\n\n" comment comment (function_definition "void lang_map(void)\n\n{\n  lang_output_section_statement_type *os;\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  lang_statement_union *plVar8;\n  uint uVar9;\n  uint uVar10;\n  bfd_section *i;\n  memory_region_struct *pmVar11;\n  bool bVar12;\n  bfd_size_type bVar13;\n  char buf [100];\n  \n  if (file_chain.head != (lang_statement_union *)0x0) {\n    bVar12 = false;\n    plVar8 = file_chain.head;\n    do {\n      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }\n      plVar8 = (plVar8->wild_statement).children.head;\n    } while (plVar8 != (lang_statement_union *)0x0);\n  }\nLAB_00023825:\n  pcVar1 = (char *)dcgettext(0,"\nMemory Configuration\n\n",5);\n  minfo(pcVar1);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf((FILE *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (lang_memory_region_list != (lang_memory_region_type *)0x0) {\n    pmVar11 = lang_memory_region_list;\n    do {\n      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);\n      sprintf(buf,"%08lx",pmVar11->origin);\n      minfo("0x%s ",buf);\n      puVar7 = (uint *)buf;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar12 = (uVar9 & 0x8080) == 0;\n      if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      bVar13 = pmVar11->length;\n      minfo("0x%V",bVar13);\n      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }\n      print_nl();\n      pmVar11 = pmVar11->next;\n    } while (pmVar11 != (memory_region_struct *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf((FILE *)config.map_file,pcVar1);\n  if ((link_info._4_1_ & 0x10) == 0) {\n    _obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0);\n  }\n  os = abs_output_section;\n  lang_statement_iteration = lang_statement_iteration + 1;\n  for (plVar8 = statement_list.head; plVar8 != (lang_statement_union_type *)0x0;\n      plVar8 = (plVar8->header).next) {\n    print_statement(plVar8,os);\n  }\n  ldemul_extra_map_file_text(link_info.output_bfd,&link_info,config.map_file);\n  return;\n}" primitive_type (function_declarator "lang_map(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  lang_output_section_statement_type *os;\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  lang_statement_union *plVar8;\n  uint uVar9;\n  uint uVar10;\n  bfd_section *i;\n  memory_region_struct *pmVar11;\n  bool bVar12;\n  bfd_size_type bVar13;\n  char buf [100];\n  \n  if (file_chain.head != (lang_statement_union *)0x0) {\n    bVar12 = false;\n    plVar8 = file_chain.head;\n    do {\n      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }\n      plVar8 = (plVar8->wild_statement).children.head;\n    } while (plVar8 != (lang_statement_union *)0x0);\n  }\nLAB_00023825:\n  pcVar1 = (char *)dcgettext(0,"\nMemory Configuration\n\n",5);\n  minfo(pcVar1);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf((FILE *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (lang_memory_region_list != (lang_memory_region_type *)0x0) {\n    pmVar11 = lang_memory_region_list;\n    do {\n      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);\n      sprintf(buf,"%08lx",pmVar11->origin);\n      minfo("0x%s ",buf);\n      puVar7 = (uint *)buf;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar12 = (uVar9 & 0x8080) == 0;\n      if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      bVar13 = pmVar11->length;\n      minfo("0x%V",bVar13);\n      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }\n      print_nl();\n      pmVar11 = pmVar11->next;\n    } while (pmVar11 != (memory_region_struct *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf((FILE *)config.map_file,pcVar1);\n  if ((link_info._4_1_ & 0x10) == 0) {\n    _obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0);\n  }\n  os = abs_output_section;\n  lang_statement_iteration = lang_statement_iteration + 1;\n  for (plVar8 = statement_list.head; plVar8 != (lang_statement_union_type *)0x0;\n      plVar8 = (plVar8->header).next) {\n    print_statement(plVar8,os);\n  }\n  ldemul_extra_map_file_text(link_info.output_bfd,&link_info,config.map_file);\n  return;\n}" { (declaration "lang_output_section_statement_type *os;" type_identifier (pointer_declarator "*os" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "lang_statement_union *plVar8;" type_identifier (pointer_declarator "*plVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "bfd_section *i;" type_identifier (pointer_declarator "*i" * identifier) ;) (declaration "memory_region_struct *pmVar11;" type_identifier (pointer_declarator "*pmVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bfd_size_type bVar13;" type_identifier identifier ;) (declaration "char buf [100];" primitive_type (array_declarator "buf [100]" identifier [ number_literal ]) ;) (if_statement "if (file_chain.head != (lang_statement_union *)0x0) {\n    bVar12 = false;\n    plVar8 = file_chain.head;\n    do {\n      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }\n      plVar8 = (plVar8->wild_statement).children.head;\n    } while (plVar8 != (lang_statement_union *)0x0);\n  }" if (parenthesized_expression "(file_chain.head != (lang_statement_union *)0x0)" ( (binary_expression "file_chain.head != (lang_statement_union *)0x0" (field_expression "file_chain.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar12 = false;\n    plVar8 = file_chain.head;\n    do {\n      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }\n      plVar8 = (plVar8->wild_statement).children.head;\n    } while (plVar8 != (lang_statement_union *)0x0);\n  }" { (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "plVar8 = file_chain.head;" (assignment_expression "plVar8 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (do_statement "do {\n      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }\n      plVar8 = (plVar8->wild_statement).children.head;\n    } while (plVar8 != (lang_statement_union *)0x0);" do (compound_statement "{\n      while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }\n      plVar8 = (plVar8->wild_statement).children.head;\n    }" { (while_statement "while ((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))) {\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }" while (parenthesized_expression "((((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0)))" ( (parenthesized_expression "(((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0))" ( (binary_expression "((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&\n             (i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0)" (parenthesized_expression "((*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0))" ( (binary_expression "(*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&\n              (((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)" (binary_expression "(*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0" (parenthesized_expression "(*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040)" ( (binary_expression "*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040" (binary_expression "*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28 >> 5" (pointer_expression "*(uint *)&((plVar8->input_statement).the_bfd)->field_0x28" * (cast_expression "(uint *)&((plVar8->input_statement).the_bfd)->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((plVar8->input_statement).the_bfd)->field_0x28" & (field_expression "((plVar8->input_statement).the_bfd)->field_0x28" (parenthesized_expression "((plVar8->input_statement).the_bfd)" ( (field_expression "(plVar8->input_statement).the_bfd" (parenthesized_expression "(plVar8->input_statement)" ( (field_expression "plVar8->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)))) >> number_literal) & number_literal) )) == number_literal) && (parenthesized_expression "(((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0)" ( (binary_expression "((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10) == 0" (parenthesized_expression "((uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10)" ( (binary_expression "(uint)(plVar8->wild_statement).walk_wild_section_handler & 0x10" (field_expression "(uint)(plVar8->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar8->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar8->wild_statement)" ( (field_expression "plVar8->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0)" ( (comma_expression "i = ((plVar8->input_statement).the_bfd)->sections, i != (bfd_section *)0x0" (assignment_expression "i = ((plVar8->input_statement).the_bfd)->sections" identifier = (field_expression "((plVar8->input_statement).the_bfd)->sections" (parenthesized_expression "((plVar8->input_statement).the_bfd)" ( (field_expression "(plVar8->input_statement).the_bfd" (parenthesized_expression "(plVar8->input_statement)" ( (field_expression "plVar8->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) , (binary_expression "i != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n        do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);\n        plVar8 = (plVar8->wild_statement).children.head;\n        if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;\n      }" { (do_statement "do {\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        } while (i != (bfd_section *)0x0);" do (compound_statement "{\n          if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }\n          i = i->next;\n        }" { (if_statement "if (((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)) {\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }" if (parenthesized_expression "(((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0))" ( (binary_expression "((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)) && ((i->flags & 0x300000) == 0)" (parenthesized_expression "((i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd))" ( (binary_expression "(i->output_section == (bfd_section *)0x0) ||\n              (i->output_section->owner != link_info.output_bfd)" (parenthesized_expression "(i->output_section == (bfd_section *)0x0)" ( (binary_expression "i->output_section == (bfd_section *)0x0" (field_expression "i->output_section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(i->output_section->owner != link_info.output_bfd)" ( (binary_expression "i->output_section->owner != link_info.output_bfd" (field_expression "i->output_section->owner" (field_expression "i->output_section" identifier -> field_identifier) -> field_identifier) != (field_expression "link_info.output_bfd" identifier . field_identifier)) ))) )) && (parenthesized_expression "((i->flags & 0x300000) == 0)" ( (binary_expression "(i->flags & 0x300000) == 0" (parenthesized_expression "(i->flags & 0x300000)" ( (binary_expression "i->flags & 0x300000" (field_expression "i->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }\n            print_input_section(i,1);\n            bVar12 = true;\n          }" { (if_statement "if (!bVar12) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf((FILE *)config.map_file,pcVar1);\n            }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nDiscarded input sections\n\n",5)" identifier (argument_list "(0,"\nDiscarded input sections\n\n",5)" ( number_literal , (string_literal ""\nDiscarded input sections\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)config.map_file,pcVar1);" (call_expression "fprintf((FILE *)config.map_file,pcVar1)" identifier (argument_list "((FILE *)config.map_file,pcVar1)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , identifier ))) ;) })) (expression_statement "print_input_section(i,1);" (call_expression "print_input_section(i,1)" identifier (argument_list "(i,1)" ( identifier , number_literal ))) ;) (expression_statement "bVar12 = true;" (assignment_expression "bVar12 = true" identifier = true) ;) })) (expression_statement "i = i->next;" (assignment_expression "i = i->next" identifier = (field_expression "i->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(i != (bfd_section *)0x0)" ( (binary_expression "i != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "plVar8 = (plVar8->wild_statement).children.head;" (assignment_expression "plVar8 = (plVar8->wild_statement).children.head" identifier = (field_expression "(plVar8->wild_statement).children.head" (field_expression "(plVar8->wild_statement).children" (parenthesized_expression "(plVar8->wild_statement)" ( (field_expression "plVar8->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (plVar8 == (lang_statement_union *)0x0) goto LAB_00023825;" if (parenthesized_expression "(plVar8 == (lang_statement_union *)0x0)" ( (binary_expression "plVar8 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023825;" goto statement_identifier ;)) })) (expression_statement "plVar8 = (plVar8->wild_statement).children.head;" (assignment_expression "plVar8 = (plVar8->wild_statement).children.head" identifier = (field_expression "(plVar8->wild_statement).children.head" (field_expression "(plVar8->wild_statement).children" (parenthesized_expression "(plVar8->wild_statement)" ( (field_expression "plVar8->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(plVar8 != (lang_statement_union *)0x0)" ( (binary_expression "plVar8 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_00023825:\n  pcVar1 = (char *)dcgettext(0,"\nMemory Configuration\n\n",5);" statement_identifier : (expression_statement "pcVar1 = (char *)dcgettext(0,"\nMemory Configuration\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nMemory Configuration\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nMemory Configuration\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nMemory Configuration\n\n",5)" identifier (argument_list "(0,"\nMemory Configuration\n\n",5)" ( number_literal , (string_literal ""\nMemory Configuration\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;)) (expression_statement "minfo(pcVar1);" (call_expression "minfo(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (expression_statement "uVar2 = dcgettext(0,"Attributes",5);" (assignment_expression "uVar2 = dcgettext(0,"Attributes",5)" identifier = (call_expression "dcgettext(0,"Attributes",5)" identifier (argument_list "(0,"Attributes",5)" ( number_literal , (string_literal ""Attributes"" " string_content ") , number_literal )))) ;) (expression_statement "uVar3 = dcgettext(0,"Length",5);" (assignment_expression "uVar3 = dcgettext(0,"Length",5)" identifier = (call_expression "dcgettext(0,"Length",5)" identifier (argument_list "(0,"Length",5)" ( number_literal , (string_literal ""Length"" " string_content ") , number_literal )))) ;) (expression_statement "uVar4 = dcgettext(0,"Origin",5);" (assignment_expression "uVar4 = dcgettext(0,"Origin",5)" identifier = (call_expression "dcgettext(0,"Origin",5)" identifier (argument_list "(0,"Origin",5)" ( number_literal , (string_literal ""Origin"" " string_content ") , number_literal )))) ;) (expression_statement "uVar5 = dcgettext(0,&DAT_0004c03b,5);" (assignment_expression "uVar5 = dcgettext(0,&DAT_0004c03b,5)" identifier = (call_expression "dcgettext(0,&DAT_0004c03b,5)" identifier (argument_list "(0,&DAT_0004c03b,5)" ( number_literal , (pointer_expression "&DAT_0004c03b" & identifier) , number_literal )))) ;) (expression_statement "fprintf((FILE *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);" (call_expression "fprintf((FILE *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" identifier (argument_list "((FILE *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , (string_literal ""%-16s %-18s %-18s %s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (lang_memory_region_list != (lang_memory_region_type *)0x0) {\n    pmVar11 = lang_memory_region_list;\n    do {\n      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);\n      sprintf(buf,"%08lx",pmVar11->origin);\n      minfo("0x%s ",buf);\n      puVar7 = (uint *)buf;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar12 = (uVar9 & 0x8080) == 0;\n      if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      bVar13 = pmVar11->length;\n      minfo("0x%V",bVar13);\n      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }\n      print_nl();\n      pmVar11 = pmVar11->next;\n    } while (pmVar11 != (memory_region_struct *)0x0);\n  }" if (parenthesized_expression "(lang_memory_region_list != (lang_memory_region_type *)0x0)" ( (binary_expression "lang_memory_region_list != (lang_memory_region_type *)0x0" identifier != (cast_expression "(lang_memory_region_type *)0x0" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pmVar11 = lang_memory_region_list;\n    do {\n      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);\n      sprintf(buf,"%08lx",pmVar11->origin);\n      minfo("0x%s ",buf);\n      puVar7 = (uint *)buf;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar12 = (uVar9 & 0x8080) == 0;\n      if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      bVar13 = pmVar11->length;\n      minfo("0x%V",bVar13);\n      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }\n      print_nl();\n      pmVar11 = pmVar11->next;\n    } while (pmVar11 != (memory_region_struct *)0x0);\n  }" { (expression_statement "pmVar11 = lang_memory_region_list;" (assignment_expression "pmVar11 = lang_memory_region_list" identifier = identifier) ;) (do_statement "do {\n      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);\n      sprintf(buf,"%08lx",pmVar11->origin);\n      minfo("0x%s ",buf);\n      puVar7 = (uint *)buf;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar12 = (uVar9 & 0x8080) == 0;\n      if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      bVar13 = pmVar11->length;\n      minfo("0x%V",bVar13);\n      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }\n      print_nl();\n      pmVar11 = pmVar11->next;\n    } while (pmVar11 != (memory_region_struct *)0x0);" do (compound_statement "{\n      fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);\n      sprintf(buf,"%08lx",pmVar11->origin);\n      minfo("0x%s ",buf);\n      puVar7 = (uint *)buf;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar12 = (uVar9 & 0x8080) == 0;\n      if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      bVar13 = pmVar11->length;\n      minfo("0x%V",bVar13);\n      if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }\n      print_nl();\n      pmVar11 = pmVar11->next;\n    }" { (expression_statement "fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name);" (call_expression "fprintf((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name)" identifier (argument_list "((FILE *)config.map_file,"%-16s ",(pmVar11->name_list).name)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , (string_literal ""%-16s "" " string_content ") , (field_expression "(pmVar11->name_list).name" (parenthesized_expression "(pmVar11->name_list)" ( (field_expression "pmVar11->name_list" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "sprintf(buf,"%08lx",pmVar11->origin);" (call_expression "sprintf(buf,"%08lx",pmVar11->origin)" identifier (argument_list "(buf,"%08lx",pmVar11->origin)" ( identifier , (string_literal ""%08lx"" " string_content ") , (field_expression "pmVar11->origin" identifier -> field_identifier) ))) ;) (expression_statement "minfo("0x%s ",buf);" (call_expression "minfo("0x%s ",buf)" identifier (argument_list "("0x%s ",buf)" ( (string_literal ""0x%s "" " string_content ") , identifier ))) ;) (expression_statement "puVar7 = (uint *)buf;" (assignment_expression "puVar7 = (uint *)buf" identifier = (cast_expression "(uint *)buf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);" do (compound_statement "{\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      }" { (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) (expression_statement "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;" (assignment_expression "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6" identifier = (binary_expression "*puVar6 + 0xfefefeff & ~*puVar6" (binary_expression "*puVar6 + 0xfefefeff" (pointer_expression "*puVar6" * identifier) + number_literal) & (unary_expression "~*puVar6" ~ (pointer_expression "*puVar6" * identifier)))) ;) (expression_statement "uVar10 = uVar9 & 0x80808080;" (assignment_expression "uVar10 = uVar9 & 0x80808080" identifier = (binary_expression "uVar9 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) ;) (expression_statement "bVar12 = (uVar9 & 0x8080) == 0;" (assignment_expression "bVar12 = (uVar9 & 0x8080) == 0" identifier = (binary_expression "(uVar9 & 0x8080) == 0" (parenthesized_expression "(uVar9 & 0x8080)" ( (binary_expression "uVar9 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar12) {\n        uVar10 = uVar10 >> 0x10;\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        uVar10 = uVar10 >> 0x10;\n      }" { (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" identifier = (binary_expression "uVar10 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar12) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" { (expression_statement "puVar7 = (uint *)((int)puVar6 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar6 + 6)" identifier = (cast_expression "(uint *)((int)puVar6 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 6)" ( (binary_expression "(int)puVar6 + 6" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf));" (assignment_expression "pcVar1 = (char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf))" identifier = (cast_expression "(char *)((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf))" ( (binary_expression "(int)puVar7 + ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf)" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)buf" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar10,(byte)uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" identifier (argument_list "((byte)uVar10,(byte)uVar10)" ( (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)buf" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" { (do_statement "do {\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);" do (compound_statement "{\n          print_space();\n          pcVar1 = pcVar1 + 1;\n        }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar1 = pcVar1 + 1;" (assignment_expression "pcVar1 = pcVar1 + 1" identifier = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar1 != (char *)0x10)" ( (binary_expression "pcVar1 != (char *)0x10" identifier != (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "bVar13 = pmVar11->length;" (assignment_expression "bVar13 = pmVar11->length" identifier = (field_expression "pmVar11->length" identifier -> field_identifier)) ;) (expression_statement "minfo("0x%V",bVar13);" (call_expression "minfo("0x%V",bVar13)" identifier (argument_list "("0x%V",bVar13)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (if_statement "if ((pmVar11->flags != 0) || (pmVar11->not_flags != 0)) {\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }" if (parenthesized_expression "((pmVar11->flags != 0) || (pmVar11->not_flags != 0))" ( (binary_expression "(pmVar11->flags != 0) || (pmVar11->not_flags != 0)" (parenthesized_expression "(pmVar11->flags != 0)" ( (binary_expression "pmVar11->flags != 0" (field_expression "pmVar11->flags" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "(pmVar11->not_flags != 0)" ( (binary_expression "pmVar11->not_flags != 0" (field_expression "pmVar11->not_flags" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n        minfo("        ",bVar13);\n        if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }\n        if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }\n      }" { (expression_statement "minfo("        ",bVar13);" (call_expression "minfo("        ",bVar13)" identifier (argument_list "("        ",bVar13)" ( (string_literal ""        "" " string_content ") , identifier ))) ;) (if_statement "if (pmVar11->flags != 0) {\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }" if (parenthesized_expression "(pmVar11->flags != 0)" ( (binary_expression "pmVar11->flags != 0" (field_expression "pmVar11->flags" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          print_space();\n          lang_map_flags(pmVar11->flags);\n        }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "lang_map_flags(pmVar11->flags);" (call_expression "lang_map_flags(pmVar11->flags)" identifier (argument_list "(pmVar11->flags)" ( (field_expression "pmVar11->flags" identifier -> field_identifier) ))) ;) })) (if_statement "if (pmVar11->not_flags != 0) {\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }" if (parenthesized_expression "(pmVar11->not_flags != 0)" ( (binary_expression "pmVar11->not_flags != 0" (field_expression "pmVar11->not_flags" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          minfo(" !",bVar13);\n          lang_map_flags(pmVar11->not_flags);\n        }" { (expression_statement "minfo(" !",bVar13);" (call_expression "minfo(" !",bVar13)" identifier (argument_list "(" !",bVar13)" ( (string_literal "" !"" " string_content ") , identifier ))) ;) (expression_statement "lang_map_flags(pmVar11->not_flags);" (call_expression "lang_map_flags(pmVar11->not_flags)" identifier (argument_list "(pmVar11->not_flags)" ( (field_expression "pmVar11->not_flags" identifier -> field_identifier) ))) ;) })) })) (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "pmVar11 = pmVar11->next;" (assignment_expression "pmVar11 = pmVar11->next" identifier = (field_expression "pmVar11->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pmVar11 != (memory_region_struct *)0x0)" ( (binary_expression "pmVar11 != (memory_region_struct *)0x0" identifier != (cast_expression "(memory_region_struct *)0x0" ( (type_descriptor "memory_region_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nLinker script and memory map\n\n",5)" identifier (argument_list "(0,"\nLinker script and memory map\n\n",5)" ( number_literal , (string_literal ""\nLinker script and memory map\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)config.map_file,pcVar1);" (call_expression "fprintf((FILE *)config.map_file,pcVar1)" identifier (argument_list "((FILE *)config.map_file,pcVar1)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , identifier ))) ;) (if_statement "if ((link_info._4_1_ & 0x10) == 0) {\n    _obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0);\n  }" if (parenthesized_expression "((link_info._4_1_ & 0x10) == 0)" ( (binary_expression "(link_info._4_1_ & 0x10) == 0" (parenthesized_expression "(link_info._4_1_ & 0x10)" ( (binary_expression "link_info._4_1_ & 0x10" (field_expression "link_info._4_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    _obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0);\n  }" { (expression_statement "_obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);" (call_expression "_obstack_begin(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" identifier (argument_list "(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" ( (pointer_expression "&map_obstack" & identifier) , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0);" (call_expression "bfd_link_hash_traverse(link_info.hash,sort_def_symbol,0)" identifier (argument_list "(link_info.hash,sort_def_symbol,0)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , number_literal ))) ;) })) (expression_statement "os = abs_output_section;" (assignment_expression "os = abs_output_section" identifier = identifier) ;) (expression_statement "lang_statement_iteration = lang_statement_iteration + 1;" (assignment_expression "lang_statement_iteration = lang_statement_iteration + 1" identifier = (binary_expression "lang_statement_iteration + 1" identifier + number_literal)) ;) (for_statement "for (plVar8 = statement_list.head; plVar8 != (lang_statement_union_type *)0x0;\n      plVar8 = (plVar8->header).next) {\n    print_statement(plVar8,os);\n  }" for ( (assignment_expression "plVar8 = statement_list.head" identifier = (field_expression "statement_list.head" identifier . field_identifier)) ; (binary_expression "plVar8 != (lang_statement_union_type *)0x0" identifier != (cast_expression "(lang_statement_union_type *)0x0" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar8 = (plVar8->header).next" identifier = (field_expression "(plVar8->header).next" (parenthesized_expression "(plVar8->header)" ( (field_expression "plVar8->header" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n    print_statement(plVar8,os);\n  }" { (expression_statement "print_statement(plVar8,os);" (call_expression "print_statement(plVar8,os)" identifier (argument_list "(plVar8,os)" ( identifier , identifier ))) ;) })) (expression_statement "ldemul_extra_map_file_text(link_info.output_bfd,&link_info,config.map_file);" (call_expression "ldemul_extra_map_file_text(link_info.output_bfd,&link_info,config.map_file)" identifier (argument_list "(link_info.output_bfd,&link_info,config.map_file)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) , (field_expression "config.map_file" identifier . field_identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00023720(void)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}\n\n" (function_definition "void FUN_00023720(void)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}" primitive_type (function_declarator "FUN_00023720(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "uint local_80 [27];" type_identifier (array_declarator "local_80 [27]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2372b;" (assignment_expression "uStack_14 = 0x2372b" identifier = number_literal) ;) (if_statement "if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(DAT_0008c77c != 0)" ( (binary_expression "DAT_0008c77c != 0" identifier != number_literal) )) (compound_statement "{\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "iVar8 = DAT_0008c77c;" (assignment_expression "iVar8 = DAT_0008c77c" identifier = identifier) ;) (do_statement "do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);" do (compound_statement "{\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    }" { (while_statement "while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }" while (parenthesized_expression "((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)))" ( (parenthesized_expression "(((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))" ( (binary_expression "((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)" (parenthesized_expression "((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0))" ( (binary_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)" (binary_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040)" ( (binary_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040" (binary_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5" (pointer_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28)" * (cast_expression "(uint *)(*(int *)(iVar8 + 0x10) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x28)" ( (binary_expression "*(int *)(iVar8 + 0x10) + 0x28" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + number_literal) )))) >> number_literal) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(iVar8 + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x24) & 0x10)" ( (binary_expression "*(byte *)(iVar8 + 0x24) & 0x10" (pointer_expression "*(byte *)(iVar8 + 0x24)" * (cast_expression "(byte *)(iVar8 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)" ( (comma_expression "iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60)" identifier = (pointer_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x60)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x10) + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x60)" ( (binary_expression "*(int *)(iVar8 + 0x10) + 0x60" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }" { (do_statement "do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);" do (compound_statement "{\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        }" { (if_statement "if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }" if (parenthesized_expression "(((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0))" ( (binary_expression "((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)" (parenthesized_expression "((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30))" ( (binary_expression "(*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)" (parenthesized_expression "(*(int *)(iVar11 + 0x3c) == 0)" ( (binary_expression "*(int *)(iVar11 + 0x3c) == 0" (pointer_expression "*(int *)(iVar11 + 0x3c)" * (cast_expression "(int *)(iVar11 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x3c) + 0x94)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x3c) + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x3c) + 0x94)" ( (binary_expression "*(int *)(iVar11 + 0x3c) + 0x94" (pointer_expression "*(int *)(iVar11 + 0x3c)" * (cast_expression "(int *)(iVar11 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) )))) + number_literal) )))) != identifier) ))) )) && (parenthesized_expression "((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)" ( (binary_expression "(*(uint *)(iVar11 + 0x14) & 0x300000) == 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x14) & 0x300000)" ( (binary_expression "*(uint *)(iVar11 + 0x14) & 0x300000" (pointer_expression "*(uint *)(iVar11 + 0x14)" * (cast_expression "(uint *)(iVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }" { (if_statement "if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nDiscarded input sections\n\n",5)" identifier (argument_list "(0,"\nDiscarded input sections\n\n",5)" ( number_literal , (string_literal ""\nDiscarded input sections\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(DAT_0008cd50,pcVar1);" (call_expression "fprintf(DAT_0008cd50,pcVar1)" identifier (argument_list "(DAT_0008cd50,pcVar1)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_0001f230();" (call_expression "FUN_0001f230()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) })) (expression_statement "iVar11 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_00023825;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00023825;" goto statement_identifier ;)) })) (expression_statement "iVar8 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);" (assignment_expression "uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5)" identifier = (call_expression "dcgettext(0,"\nMemory Configuration\n\n",5)" identifier (argument_list "(0,"\nMemory Configuration\n\n",5)" ( number_literal , (string_literal ""\nMemory Configuration\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;)) (expression_statement "FUN_00031790(uVar2);" (call_expression "FUN_00031790(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "uVar2 = dcgettext(0,"Attributes",5);" (assignment_expression "uVar2 = dcgettext(0,"Attributes",5)" identifier = (call_expression "dcgettext(0,"Attributes",5)" identifier (argument_list "(0,"Attributes",5)" ( number_literal , (string_literal ""Attributes"" " string_content ") , number_literal )))) ;) (expression_statement "uVar3 = dcgettext(0,"Length",5);" (assignment_expression "uVar3 = dcgettext(0,"Length",5)" identifier = (call_expression "dcgettext(0,"Length",5)" identifier (argument_list "(0,"Length",5)" ( number_literal , (string_literal ""Length"" " string_content ") , number_literal )))) ;) (expression_statement "uVar4 = dcgettext(0,"Origin",5);" (assignment_expression "uVar4 = dcgettext(0,"Origin",5)" identifier = (call_expression "dcgettext(0,"Origin",5)" identifier (argument_list "(0,"Origin",5)" ( number_literal , (string_literal ""Origin"" " string_content ") , number_literal )))) ;) (expression_statement "uVar5 = dcgettext(0,&DAT_0004c03b,5);" (assignment_expression "uVar5 = dcgettext(0,&DAT_0004c03b,5)" identifier = (call_expression "dcgettext(0,&DAT_0004c03b,5)" identifier (argument_list "(0,&DAT_0004c03b,5)" ( number_literal , (pointer_expression "&DAT_0004c03b" & identifier) , number_literal )))) ;) (expression_statement "fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);" (call_expression "fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" identifier (argument_list "(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" ( identifier , (string_literal ""%-16s %-18s %-18s %s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }" if (parenthesized_expression "(DAT_0008c7cc != (undefined4 *)0x0)" ( (binary_expression "DAT_0008c7cc != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }" { (expression_statement "puVar12 = DAT_0008c7cc;" (assignment_expression "puVar12 = DAT_0008c7cc" identifier = identifier) ;) (do_statement "do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);" do (compound_statement "{\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    }" { (expression_statement "fprintf(DAT_0008cd50,"%-16s ",*puVar12);" (call_expression "fprintf(DAT_0008cd50,"%-16s ",*puVar12)" identifier (argument_list "(DAT_0008cd50,"%-16s ",*puVar12)" ( identifier , (string_literal ""%-16s "" " string_content ") , (pointer_expression "*puVar12" * identifier) ))) ;) (expression_statement "sprintf((char *)local_80,"%08lx",puVar12[4]);" (call_expression "sprintf((char *)local_80,"%08lx",puVar12[4])" identifier (argument_list "((char *)local_80,"%08lx",puVar12[4])" ( (cast_expression "(char *)local_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%08lx"" " string_content ") , (subscript_expression "puVar12[4]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00031790("0x%s ",local_80);" (call_expression "FUN_00031790("0x%s ",local_80)" identifier (argument_list "("0x%s ",local_80)" ( (string_literal ""0x%s "" " string_content ") , identifier ))) ;) (expression_statement "puVar7 = local_80;" (assignment_expression "puVar7 = local_80" identifier = identifier) ;) (do_statement "do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);" do (compound_statement "{\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      }" { (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) (expression_statement "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;" (assignment_expression "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6" identifier = (binary_expression "*puVar6 + 0xfefefeff & ~*puVar6" (binary_expression "*puVar6 + 0xfefefeff" (pointer_expression "*puVar6" * identifier) + number_literal) & (unary_expression "~*puVar6" ~ (pointer_expression "*puVar6" * identifier)))) ;) (expression_statement "uVar10 = uVar9 & 0x80808080;" (assignment_expression "uVar10 = uVar9 & 0x80808080" identifier = (binary_expression "uVar9 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) ;) (expression_statement "bVar13 = (uVar9 & 0x8080) == 0;" (assignment_expression "bVar13 = (uVar9 & 0x8080) == 0" identifier = (binary_expression "(uVar9 & 0x8080) == 0" (parenthesized_expression "(uVar9 & 0x8080)" ( (binary_expression "uVar9 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n        uVar10 = uVar10 >> 0x10;\n      }" { (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" identifier = (binary_expression "uVar10 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" { (expression_statement "puVar7 = (uint *)((int)puVar6 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar6 + 6)" identifier = (cast_expression "(uint *)((int)puVar6 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 6)" ( (binary_expression "(int)puVar6 + 6" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));" (assignment_expression "pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" identifier = (cast_expression "(char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" ( (binary_expression "(int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80)" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar10,(byte)uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" identifier (argument_list "((byte)uVar10,(byte)uVar10)" ( (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" { (do_statement "do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);" do (compound_statement "{\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        }" { (expression_statement "FUN_000307b0();" (call_expression "FUN_000307b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar1 = pcVar1 + 1;" (assignment_expression "pcVar1 = pcVar1 + 1" identifier = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar1 != (char *)0x10)" ( (binary_expression "pcVar1 != (char *)0x10" identifier != (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "uVar2 = puVar12[5];" (assignment_expression "uVar2 = puVar12[5]" identifier = (subscript_expression "puVar12[5]" identifier [ number_literal ])) ;) (expression_statement "FUN_00031790("0x%V",uVar2);" (call_expression "FUN_00031790("0x%V",uVar2)" identifier (argument_list "("0x%V",uVar2)" ( (string_literal ""0x%V"" " string_content ") , identifier ))) ;) (if_statement "if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }" if (parenthesized_expression "((puVar12[9] != 0) || (puVar12[10] != 0))" ( (binary_expression "(puVar12[9] != 0) || (puVar12[10] != 0)" (parenthesized_expression "(puVar12[9] != 0)" ( (binary_expression "puVar12[9] != 0" (subscript_expression "puVar12[9]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(puVar12[10] != 0)" ( (binary_expression "puVar12[10] != 0" (subscript_expression "puVar12[10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }" { (expression_statement "FUN_00031790("        ",uVar2);" (call_expression "FUN_00031790("        ",uVar2)" identifier (argument_list "("        ",uVar2)" ( (string_literal ""        "" " string_content ") , identifier ))) ;) (if_statement "if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }" if (parenthesized_expression "(puVar12[9] != 0)" ( (binary_expression "puVar12[9] != 0" (subscript_expression "puVar12[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_000307b0();\n          FUN_0001e150();\n        }" { (expression_statement "FUN_000307b0();" (call_expression "FUN_000307b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001e150();" (call_expression "FUN_0001e150()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }" if (parenthesized_expression "(puVar12[10] != 0)" ( (binary_expression "puVar12[10] != 0" (subscript_expression "puVar12[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }" { (expression_statement "FUN_00031790(&DAT_0004c069,uVar2);" (call_expression "FUN_00031790(&DAT_0004c069,uVar2)" identifier (argument_list "(&DAT_0004c069,uVar2)" ( (pointer_expression "&DAT_0004c069" & identifier) , identifier ))) ;) (expression_statement "FUN_0001e150();" (call_expression "FUN_0001e150()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar12 = (undefined4 *)puVar12[2];" (assignment_expression "puVar12 = (undefined4 *)puVar12[2]" identifier = (cast_expression "(undefined4 *)puVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nLinker script and memory map\n\n",5)" identifier (argument_list "(0,"\nLinker script and memory map\n\n",5)" ( number_literal , (string_literal ""\nLinker script and memory map\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(DAT_0008cd50,pcVar1);" (call_expression "fprintf(DAT_0008cd50,pcVar1)" identifier (argument_list "(DAT_0008cd50,pcVar1)" ( identifier , identifier ))) ;) (if_statement "if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }" if (parenthesized_expression "((DAT_0008cc04 & 0x10) == 0)" ( (binary_expression "(DAT_0008cc04 & 0x10) == 0" (parenthesized_expression "(DAT_0008cc04 & 0x10)" ( (binary_expression "DAT_0008cc04 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }" { (expression_statement "_obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);" (call_expression "_obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" identifier (argument_list "(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" ( (pointer_expression "&DAT_0008c860" & identifier) , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);" (call_expression "bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0)" identifier (argument_list "(DAT_0008cc1c,FUN_00021270,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "DAT_0008c760 = DAT_0008c760 + 1;" (assignment_expression "DAT_0008c760 = DAT_0008c760 + 1" identifier = (binary_expression "DAT_0008c760 + 1" identifier + number_literal)) ;) (for_statement "for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }" for ( (assignment_expression "puVar12 = DAT_0008c828" identifier = identifier) ; (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar12 = (undefined4 *)*puVar12" identifier = (cast_expression "(undefined4 *)*puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ) (compound_statement "{\n    FUN_0001f550();\n  }" { (expression_statement "FUN_0001f550();" (call_expression "FUN_0001f550()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);" (call_expression "FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50)" identifier (argument_list "(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50)" ( identifier , (pointer_expression "&DAT_0008cc00" & identifier) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) >> LIT) & LIT) )) == LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (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) )))) != IDENT) ))) )) && (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 { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00023720(void)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00023720(void)" (identifier "FUN_00023720") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  uint *puVar6;\n  uint *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  bool bVar13;\n  uint local_80 [27];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2372b;\n  if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }\nLAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);\n  FUN_00031790(uVar2);\n  uVar2 = dcgettext(0,"Attributes",5);\n  uVar3 = dcgettext(0,"Length",5);\n  uVar4 = dcgettext(0,"Origin",5);\n  uVar5 = dcgettext(0,&DAT_0004c03b,5);\n  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);\n  if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }\n  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);\n  fprintf(DAT_0008cd50,pcVar1);\n  if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }\n  DAT_0008c760 = DAT_0008c760 + 1;\n  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }\n  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);\n  return;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "uint local_80 [27];" (type_identifier "uint") (array_declarator "local_80 [27]" (identifier "local_80") ([ "[") (number_literal "27") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2372b;" (assignment_expression "uStack_14 = 0x2372b" (identifier "uStack_14") (= "=") (number_literal "0x2372b")) (; ";")) (if_statement "if (DAT_0008c77c != 0) {\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }" (if "if") (parenthesized_expression "(DAT_0008c77c != 0)" (( "(") (binary_expression "DAT_0008c77c != 0" (identifier "DAT_0008c77c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bVar13 = false;\n    iVar8 = DAT_0008c77c;\n    do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);\n  }" ({ "{") (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "iVar8 = DAT_0008c77c;" (assignment_expression "iVar8 = DAT_0008c77c" (identifier "iVar8") (= "=") (identifier "DAT_0008c77c")) (; ";")) (do_statement "do {\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    } while (iVar8 != 0);" (do "do") (compound_statement "{\n      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }\n      iVar8 = *(int *)(iVar8 + 0x18);\n    }" ({ "{") (while_statement "while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }" (while "while") (parenthesized_expression "((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)))" (( "(") (parenthesized_expression "(((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))" (( "(") (binary_expression "((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&\n             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)" (parenthesized_expression "((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0))" (( "(") (binary_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&\n              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)" (binary_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040" (binary_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5" (pointer_expression "*(uint *)(*(int *)(iVar8 + 0x10) + 0x28)" (* "*") (cast_expression "(uint *)(*(int *)(iVar8 + 0x10) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x28)" (( "(") (binary_expression "*(int *)(iVar8 + 0x10) + 0x28" (pointer_expression "*(int *)(iVar8 + 0x10)" (* "*") (cast_expression "(int *)(iVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "0x1040")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar8 + 0x24) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(iVar8 + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x24) & 0x10)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x24) & 0x10" (pointer_expression "*(byte *)(iVar8 + 0x24)" (* "*") (cast_expression "(byte *)(iVar8 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x24)" (( "(") (binary_expression "iVar8 + 0x24" (identifier "iVar8") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0)" (( "(") (comma_expression "iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x60)" (* "*") (cast_expression "(int *)(*(int *)(iVar8 + 0x10) + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x60)" (( "(") (binary_expression "*(int *)(iVar8 + 0x10) + 0x60" (pointer_expression "*(int *)(iVar8 + 0x10)" (* "*") (cast_expression "(int *)(iVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x60")) () ")"))))) (, ",") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")")) (compound_statement "{\n        do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);\n        iVar8 = *(int *)(iVar8 + 0x18);\n        if (iVar8 == 0) goto LAB_00023825;\n      }" ({ "{") (do_statement "do {\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        } while (iVar11 != 0);" (do "do") (compound_statement "{\n          if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }\n          iVar11 = *(int *)(iVar11 + 0xc);\n        }" ({ "{") (if_statement "if (((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }" (if "if") (parenthesized_expression "(((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0))" (( "(") (binary_expression "((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&\n             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)" (parenthesized_expression "((*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30))" (( "(") (binary_expression "(*(int *)(iVar11 + 0x3c) == 0) ||\n              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)" (parenthesized_expression "(*(int *)(iVar11 + 0x3c) == 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0x3c) == 0" (pointer_expression "*(int *)(iVar11 + 0x3c)" (* "*") (cast_expression "(int *)(iVar11 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x3c)" (( "(") (binary_expression "iVar11 + 0x3c" (identifier "iVar11") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)" (( "(") (binary_expression "*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x3c) + 0x94)" (* "*") (cast_expression "(int *)(*(int *)(iVar11 + 0x3c) + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x3c) + 0x94)" (( "(") (binary_expression "*(int *)(iVar11 + 0x3c) + 0x94" (pointer_expression "*(int *)(iVar11 + 0x3c)" (* "*") (cast_expression "(int *)(iVar11 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x3c)" (( "(") (binary_expression "iVar11 + 0x3c" (identifier "iVar11") (+ "+") (number_literal "0x3c")) () ")")))) (+ "+") (number_literal "0x94")) () ")")))) (!= "!=") (identifier "DAT_0008cc30")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)" (( "(") (binary_expression "(*(uint *)(iVar11 + 0x14) & 0x300000) == 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x14) & 0x300000)" (( "(") (binary_expression "*(uint *)(iVar11 + 0x14) & 0x300000" (pointer_expression "*(uint *)(iVar11 + 0x14)" (* "*") (cast_expression "(uint *)(iVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x300000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }\n            FUN_0001f230();\n            bVar13 = true;\n          }" ({ "{") (if_statement "if (!bVar13) {\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\n              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);\n              fprintf(DAT_0008cd50,pcVar1);\n            }" ({ "{") (expression_statement "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,"\nDiscarded input sections\n\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nDiscarded input sections\n\n",5)" (identifier "dcgettext") (argument_list "(0,"\nDiscarded input sections\n\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nDiscarded input sections\n\n"" (" """) (escape_sequence "\n") (string_content "Discarded input sections") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(DAT_0008cd50,pcVar1);" (call_expression "fprintf(DAT_0008cd50,pcVar1)" (identifier "fprintf") (argument_list "(DAT_0008cd50,pcVar1)" (( "(") (identifier "DAT_0008cd50") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0001f230();" (call_expression "FUN_0001f230()" (identifier "FUN_0001f230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0xc)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar8 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 0x18)" (* "*") (cast_expression "(int *)(iVar8 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_00023825;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00023825;" (goto "goto") (statement_identifier "LAB_00023825") (; ";"))) (} "}"))) (expression_statement "iVar8 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 0x18)" (* "*") (cast_expression "(int *)(iVar8 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00023825:\n  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);" (statement_identifier "LAB_00023825") (: ":") (expression_statement "uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);" (assignment_expression "uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"\nMemory Configuration\n\n",5)" (identifier "dcgettext") (argument_list "(0,"\nMemory Configuration\n\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nMemory Configuration\n\n"" (" """) (escape_sequence "\n") (string_content "Memory Configuration") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00031790(uVar2);" (call_expression "FUN_00031790(uVar2)" (identifier "FUN_00031790") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "uVar2 = dcgettext(0,"Attributes",5);" (assignment_expression "uVar2 = dcgettext(0,"Attributes",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"Attributes",5)" (identifier "dcgettext") (argument_list "(0,"Attributes",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Attributes"" (" """) (string_content "Attributes") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar3 = dcgettext(0,"Length",5);" (assignment_expression "uVar3 = dcgettext(0,"Length",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Length",5)" (identifier "dcgettext") (argument_list "(0,"Length",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Length"" (" """) (string_content "Length") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar4 = dcgettext(0,"Origin",5);" (assignment_expression "uVar4 = dcgettext(0,"Origin",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Origin",5)" (identifier "dcgettext") (argument_list "(0,"Origin",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Origin"" (" """) (string_content "Origin") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar5 = dcgettext(0,&DAT_0004c03b,5);" (assignment_expression "uVar5 = dcgettext(0,&DAT_0004c03b,5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,&DAT_0004c03b,5)" (identifier "dcgettext") (argument_list "(0,&DAT_0004c03b,5)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0004c03b" (& "&") (identifier "DAT_0004c03b")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);" (call_expression "fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" (identifier "fprintf") (argument_list "(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2)" (( "(") (identifier "DAT_0008cd50") (, ",") (string_literal ""%-16s %-18s %-18s %s\n"" (" """) (string_content "%-16s %-18s %-18s %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (identifier "uVar3") (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (DAT_0008c7cc != (undefined4 *)0x0) {\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }" (if "if") (parenthesized_expression "(DAT_0008c7cc != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_0008c7cc != (undefined4 *)0x0" (identifier "DAT_0008c7cc") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar12 = DAT_0008c7cc;\n    do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);\n  }" ({ "{") (expression_statement "puVar12 = DAT_0008c7cc;" (assignment_expression "puVar12 = DAT_0008c7cc" (identifier "puVar12") (= "=") (identifier "DAT_0008c7cc")) (; ";")) (do_statement "do {\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    } while (puVar12 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n      fprintf(DAT_0008cd50,"%-16s ",*puVar12);\n      sprintf((char *)local_80,"%08lx",puVar12[4]);\n      FUN_00031790("0x%s ",local_80);\n      puVar7 = local_80;\n      do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);\n      bVar13 = (uVar9 & 0x8080) == 0;\n      if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }\n      if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }\n      pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));\n      if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }\n      uVar2 = puVar12[5];\n      FUN_00031790("0x%V",uVar2);\n      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }\n      FUN_000307e0();\n      puVar12 = (undefined4 *)puVar12[2];\n    }" ({ "{") (expression_statement "fprintf(DAT_0008cd50,"%-16s ",*puVar12);" (call_expression "fprintf(DAT_0008cd50,"%-16s ",*puVar12)" (identifier "fprintf") (argument_list "(DAT_0008cd50,"%-16s ",*puVar12)" (( "(") (identifier "DAT_0008cd50") (, ",") (string_literal ""%-16s "" (" """) (string_content "%-16s ") (" """)) (, ",") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) () ")"))) (; ";")) (expression_statement "sprintf((char *)local_80,"%08lx",puVar12[4]);" (call_expression "sprintf((char *)local_80,"%08lx",puVar12[4])" (identifier "sprintf") (argument_list "((char *)local_80,"%08lx",puVar12[4])" (( "(") (cast_expression "(char *)local_80" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_80")) (, ",") (string_literal ""%08lx"" (" """) (string_content "%08lx") (" """)) (, ",") (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_00031790("0x%s ",local_80);" (call_expression "FUN_00031790("0x%s ",local_80)" (identifier "FUN_00031790") (argument_list "("0x%s ",local_80)" (( "(") (string_literal ""0x%s "" (" """) (string_content "0x%s ") (" """)) (, ",") (identifier "local_80") () ")"))) (; ";")) (expression_statement "puVar7 = local_80;" (assignment_expression "puVar7 = local_80" (identifier "puVar7") (= "=") (identifier "local_80")) (; ";")) (do_statement "do {\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      } while (uVar10 == 0);" (do "do") (compound_statement "{\n        puVar6 = puVar7;\n        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;\n        uVar10 = uVar9 & 0x80808080;\n        puVar7 = puVar6 + 1;\n      }" ({ "{") (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" (identifier "puVar6") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;" (assignment_expression "uVar9 = *puVar6 + 0xfefefeff & ~*puVar6" (identifier "uVar9") (= "=") (binary_expression "*puVar6 + 0xfefefeff & ~*puVar6" (binary_expression "*puVar6 + 0xfefefeff" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar6" (~ "~") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))))) (; ";")) (expression_statement "uVar10 = uVar9 & 0x80808080;" (assignment_expression "uVar10 = uVar9 & 0x80808080" (identifier "uVar10") (= "=") (binary_expression "uVar9 & 0x80808080" (identifier "uVar9") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar13 = (uVar9 & 0x8080) == 0;" (assignment_expression "bVar13 = (uVar9 & 0x8080) == 0" (identifier "bVar13") (= "=") (binary_expression "(uVar9 & 0x8080) == 0" (parenthesized_expression "(uVar9 & 0x8080)" (( "(") (binary_expression "uVar9 & 0x8080" (identifier "uVar9") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar13) {\n        uVar10 = uVar10 >> 0x10;\n      }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n        uVar10 = uVar10 >> 0x10;\n      }" ({ "{") (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" (identifier "uVar10") (= "=") (binary_expression "uVar10 >> 0x10" (identifier "uVar10") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar13) {\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n        puVar7 = (uint *)((int)puVar6 + 6);\n      }" ({ "{") (expression_statement "puVar7 = (uint *)((int)puVar6 + 6);" (assignment_expression "puVar7 = (uint *)((int)puVar6 + 6)" (identifier "puVar7") (= "=") (cast_expression "(uint *)((int)puVar6 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 6)" (( "(") (binary_expression "(int)puVar6 + 6" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));" (assignment_expression "pcVar1 = (char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" (identifier "pcVar1") (= "=") (cast_expression "(char *)((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80))" (( "(") (binary_expression "(int)puVar7 +\n                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80)" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80)" (( "(") (binary_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar10,(byte)uVar10)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" (identifier "CARRY1") (argument_list "((byte)uVar10,(byte)uVar10)" (( "(") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) (, ",") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) () ")"))))) () ")")) (- "-") (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80"))) () ")"))) () ")")))) (; ";")) (if_statement "if (pcVar1 < (char *)0x10) {\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x10)" (( "(") (binary_expression "pcVar1 < (char *)0x10" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) () ")")) (compound_statement "{\n        do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);\n      }" ({ "{") (do_statement "do {\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        } while (pcVar1 != (char *)0x10);" (do "do") (compound_statement "{\n          FUN_000307b0();\n          pcVar1 = pcVar1 + 1;\n        }" ({ "{") (expression_statement "FUN_000307b0();" (call_expression "FUN_000307b0()" (identifier "FUN_000307b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar1 = pcVar1 + 1;" (assignment_expression "pcVar1 = pcVar1 + 1" (identifier "pcVar1") (= "=") (binary_expression "pcVar1 + 1" (identifier "pcVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar1 != (char *)0x10)" (( "(") (binary_expression "pcVar1 != (char *)0x10" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar2 = puVar12[5];" (assignment_expression "uVar2 = puVar12[5]" (identifier "uVar2") (= "=") (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "FUN_00031790("0x%V",uVar2);" (call_expression "FUN_00031790("0x%V",uVar2)" (identifier "FUN_00031790") (argument_list "("0x%V",uVar2)" (( "(") (string_literal ""0x%V"" (" """) (string_content "0x%V") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if ((puVar12[9] != 0) || (puVar12[10] != 0)) {\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }" (if "if") (parenthesized_expression "((puVar12[9] != 0) || (puVar12[10] != 0))" (( "(") (binary_expression "(puVar12[9] != 0) || (puVar12[10] != 0)" (parenthesized_expression "(puVar12[9] != 0)" (( "(") (binary_expression "puVar12[9] != 0" (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puVar12[10] != 0)" (( "(") (binary_expression "puVar12[10] != 0" (subscript_expression "puVar12[10]" (identifier "puVar12") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        FUN_00031790("        ",uVar2);\n        if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }\n        if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }\n      }" ({ "{") (expression_statement "FUN_00031790("        ",uVar2);" (call_expression "FUN_00031790("        ",uVar2)" (identifier "FUN_00031790") (argument_list "("        ",uVar2)" (( "(") (string_literal ""        "" (" """) (string_content "        ") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (puVar12[9] != 0) {\n          FUN_000307b0();\n          FUN_0001e150();\n        }" (if "if") (parenthesized_expression "(puVar12[9] != 0)" (( "(") (binary_expression "puVar12[9] != 0" (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000307b0();\n          FUN_0001e150();\n        }" ({ "{") (expression_statement "FUN_000307b0();" (call_expression "FUN_000307b0()" (identifier "FUN_000307b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001e150();" (call_expression "FUN_0001e150()" (identifier "FUN_0001e150") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar12[10] != 0) {\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }" (if "if") (parenthesized_expression "(puVar12[10] != 0)" (( "(") (binary_expression "puVar12[10] != 0" (subscript_expression "puVar12[10]" (identifier "puVar12") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00031790(&DAT_0004c069,uVar2);\n          FUN_0001e150();\n        }" ({ "{") (expression_statement "FUN_00031790(&DAT_0004c069,uVar2);" (call_expression "FUN_00031790(&DAT_0004c069,uVar2)" (identifier "FUN_00031790") (argument_list "(&DAT_0004c069,uVar2)" (( "(") (pointer_expression "&DAT_0004c069" (& "&") (identifier "DAT_0004c069")) (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "FUN_0001e150();" (call_expression "FUN_0001e150()" (identifier "FUN_0001e150") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_000307e0();" (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar12 = (undefined4 *)puVar12[2];" (assignment_expression "puVar12 = (undefined4 *)puVar12[2]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)puVar12[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,"\nLinker script and memory map\n\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nLinker script and memory map\n\n",5)" (identifier "dcgettext") (argument_list "(0,"\nLinker script and memory map\n\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nLinker script and memory map\n\n"" (" """) (escape_sequence "\n") (string_content "Linker script and memory map") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(DAT_0008cd50,pcVar1);" (call_expression "fprintf(DAT_0008cd50,pcVar1)" (identifier "fprintf") (argument_list "(DAT_0008cd50,pcVar1)" (( "(") (identifier "DAT_0008cd50") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (if_statement "if ((DAT_0008cc04 & 0x10) == 0) {\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }" (if "if") (parenthesized_expression "((DAT_0008cc04 & 0x10) == 0)" (( "(") (binary_expression "(DAT_0008cc04 & 0x10) == 0" (parenthesized_expression "(DAT_0008cc04 & 0x10)" (( "(") (binary_expression "DAT_0008cc04 & 0x10" (identifier "DAT_0008cc04") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);\n    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);\n  }" ({ "{") (expression_statement "_obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);" (call_expression "_obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" (identifier "_obstack_begin") (argument_list "(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac)" (( "(") (pointer_expression "&DAT_0008c860" (& "&") (identifier "DAT_0008c860")) (, ",") (number_literal "1000") (, ",") (number_literal "0") (, ",") (identifier "PTR_xmalloc_0008bfc0") (, ",") (identifier "PTR_free_0008bfac") () ")"))) (; ";")) (expression_statement "bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);" (call_expression "bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_0008cc1c,FUN_00021270,0)" (( "(") (identifier "DAT_0008cc1c") (, ",") (identifier "FUN_00021270") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0008c760 = DAT_0008c760 + 1;" (assignment_expression "DAT_0008c760 = DAT_0008c760 + 1" (identifier "DAT_0008c760") (= "=") (binary_expression "DAT_0008c760 + 1" (identifier "DAT_0008c760") (+ "+") (number_literal "1"))) (; ";")) (for_statement "for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {\n    FUN_0001f550();\n  }" (for "for") (( "(") (assignment_expression "puVar12 = DAT_0008c828" (identifier "puVar12") (= "=") (identifier "DAT_0008c828")) (; ";") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar12 = (undefined4 *)*puVar12" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)*puVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")))) () ")") (compound_statement "{\n    FUN_0001f550();\n  }" ({ "{") (expression_statement "FUN_0001f550();" (call_expression "FUN_0001f550()" (identifier "FUN_0001f550") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);" (call_expression "FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50)" (identifier "FUN_00030690") (argument_list "(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50)" (( "(") (identifier "DAT_0008cc30") (, ",") (pointer_expression "&DAT_0008cc00" (& "&") (identifier "DAT_0008cc00")) (, ",") (identifier "DAT_0008cd50") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 *os;
  char *var_13;
  type_2 uVar2;
  type_2 uVar3;
  type_2 uVar4;
  type_2 uVar5;
  type_3 *var_10;
  type_3 *puVar7;
  type_4 *var_5;
  type_3 var_9;
  type_3 var_11;
  type_5 *var_1;
  type_6 *var_17;
  bool bVar12;
  type_7 bVar13;
  char buf [100];
  
  if (file_chain.head != (type_4 *)0x0) {
    bVar12 = false;
    var_5 = file_chain.head;
    do {
      while ((((*(type_3 *)&((var_5->input_statement).the_bfd)->field_0x28 >> 5 & 0x1040) == 0 &&
              (((type_3)(var_5->wild_statement).walk_wild_section_handler & 0x10) == 0)) &&
             (var_1 = ((var_5->input_statement).the_bfd)->sections, var_1 != (type_5 *)0x0))) {
        do {
          if (((var_1->output_section == (type_5 *)0x0) ||
              (var_1->output_section->owner != link_info.output_bfd)) && ((var_1->flags & 0x300000) == 0)) {
            if (!bVar12) {
              var_13 = (char *)var_2(0,"\nDiscarded input sections\n\n",5);
              var_3((type_8 *)config.map_file,var_13);
            }
            var_4(var_1,1);
            bVar12 = true;
          }
          var_1 = var_1->next;
        } while (var_1 != (type_5 *)0x0);
        var_5 = (var_5->wild_statement).children.head;
        if (var_5 == (type_4 *)0x0) goto LAB_00023825;
      }
      var_5 = (var_5->wild_statement).children.head;
    } while (var_5 != (type_4 *)0x0);
  }
LAB_00023825:
  var_13 = (char *)var_2(0,"\nMemory Configuration\n\n",5);
  var_6(var_13);
  uVar2 = var_2(0,"Attributes",5);
  uVar3 = var_2(0,"Length",5);
  uVar4 = var_2(0,"Origin",5);
  uVar5 = var_2(0,&DAT_0004c03b,5);
  var_3((type_8 *)config.map_file,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);
  if (var_7 != (type_9 *)0x0) {
    var_17 = var_7;
    do {
      var_3((type_8 *)config.map_file,"%-16s ",(var_17->name_list).name);
      var_8(buf,"%08lx",var_17->origin);
      var_6("0x%s ",buf);
      puVar7 = (type_3 *)buf;
      do {
        var_10 = puVar7;
        var_9 = *var_10 + 0xfefefeff & ~*var_10;
        var_11 = var_9 & 0x80808080;
        puVar7 = var_10 + 1;
      } while (var_11 == 0);
      bVar12 = (var_9 & 0x8080) == 0;
      if (bVar12) {
        var_11 = var_11 >> 0x10;
      }
      if (bVar12) {
        puVar7 = (type_3 *)((int)var_10 + 6);
      }
      var_13 = (char *)((int)puVar7 + ((-3 - (type_3)var_12((type_10)var_11,(type_10)var_11)) - (int)buf));
      if (var_13 < (char *)0x10) {
        do {
          var_14();
          var_13 = var_13 + 1;
        } while (var_13 != (char *)0x10);
      }
      bVar13 = var_17->length;
      var_6("0x%V",bVar13);
      if ((var_17->flags != 0) || (var_17->not_flags != 0)) {
        var_6("        ",bVar13);
        if (var_17->flags != 0) {
          var_14();
          var_15(var_17->flags);
        }
        if (var_17->not_flags != 0) {
          var_6(" !",bVar13);
          var_15(var_17->not_flags);
        }
      }
      var_16();
      var_17 = var_17->next;
    } while (var_17 != (type_6 *)0x0);
  }
  var_13 = (char *)var_2(0,"\nLinker script and memory map\n\n",5);
  var_3((type_8 *)config.map_file,var_13);
  if ((link_info._4_1_ & 0x10) == 0) {
    var_18(&map_obstack,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);
    var_19(link_info.hash,sort_def_symbol,0);
  }
  os = abs_output_section;
  var_20 = var_20 + 1;
  for (var_5 = statement_list.head; var_5 != (type_11 *)0x0;
      var_5 = (var_5->header).next) {
    var_21(var_5,os);
  }
  var_22(link_info.output_bfd,&link_info,config.map_file);
  return;
}


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

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

void MASKED(void)

{
  char *pcVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  uint *puVar6;
  uint *puVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  undefined4 *puVar12;
  bool bVar13;
  uint local_80 [27];
  undefined4 uStack_14;
  
  uStack_14 = 0x2372b;
  if (DAT_0008c77c != 0) {
    bVar13 = false;
    iVar8 = DAT_0008c77c;
    do {
      while ((((*(uint *)(*(int *)(iVar8 + 0x10) + 0x28) >> 5 & 0x1040) == 0 &&
              ((*(byte *)(iVar8 + 0x24) & 0x10) == 0)) &&
             (iVar11 = *(int *)(*(int *)(iVar8 + 0x10) + 0x60), iVar11 != 0))) {
        do {
          if (((*(int *)(iVar11 + 0x3c) == 0) ||
              (*(int *)(*(int *)(iVar11 + 0x3c) + 0x94) != DAT_0008cc30)) &&
             ((*(uint *)(iVar11 + 0x14) & 0x300000) == 0)) {
            if (!bVar13) {
              pcVar1 = (char *)dcgettext(0,"\nDiscarded input sections\n\n",5);
              fprintf(DAT_0008cd50,pcVar1);
            }
            FUN_0001f230();
            bVar13 = true;
          }
          iVar11 = *(int *)(iVar11 + 0xc);
        } while (iVar11 != 0);
        iVar8 = *(int *)(iVar8 + 0x18);
        if (iVar8 == 0) goto LAB_00023825;
      }
      iVar8 = *(int *)(iVar8 + 0x18);
    } while (iVar8 != 0);
  }
LAB_00023825:
  uVar2 = dcgettext(0,"\nMemory Configuration\n\n",5);
  FUN_00031790(uVar2);
  uVar2 = dcgettext(0,"Attributes",5);
  uVar3 = dcgettext(0,"Length",5);
  uVar4 = dcgettext(0,"Origin",5);
  uVar5 = dcgettext(0,&DAT_0004c03b,5);
  fprintf(DAT_0008cd50,"%-16s %-18s %-18s %s\n",uVar5,uVar4,uVar3,uVar2);
  if (DAT_0008c7cc != (undefined4 *)0x0) {
    puVar12 = DAT_0008c7cc;
    do {
      fprintf(DAT_0008cd50,"%-16s ",*puVar12);
      sprintf((char *)local_80,"%08lx",puVar12[4]);
      FUN_00031790("0x%s ",local_80);
      puVar7 = local_80;
      do {
        puVar6 = puVar7;
        uVar9 = *puVar6 + 0xfefefeff & ~*puVar6;
        uVar10 = uVar9 & 0x80808080;
        puVar7 = puVar6 + 1;
      } while (uVar10 == 0);
      bVar13 = (uVar9 & 0x8080) == 0;
      if (bVar13) {
        uVar10 = uVar10 >> 0x10;
      }
      if (bVar13) {
        puVar7 = (uint *)((int)puVar6 + 6);
      }
      pcVar1 = (char *)((int)puVar7 +
                       ((-3 - (uint)CARRY1((byte)uVar10,(byte)uVar10)) - (int)local_80));
      if (pcVar1 < (char *)0x10) {
        do {
          FUN_000307b0();
          pcVar1 = pcVar1 + 1;
        } while (pcVar1 != (char *)0x10);
      }
      uVar2 = puVar12[5];
      FUN_00031790("0x%V",uVar2);
      if ((puVar12[9] != 0) || (puVar12[10] != 0)) {
        FUN_00031790("        ",uVar2);
        if (puVar12[9] != 0) {
          FUN_000307b0();
          FUN_0001e150();
        }
        if (puVar12[10] != 0) {
          FUN_00031790(&DAT_0004c069,uVar2);
          FUN_0001e150();
        }
      }
      FUN_000307e0();
      puVar12 = (undefined4 *)puVar12[2];
    } while (puVar12 != (undefined4 *)0x0);
  }
  pcVar1 = (char *)dcgettext(0,"\nLinker script and memory map\n\n",5);
  fprintf(DAT_0008cd50,pcVar1);
  if ((DAT_0008cc04 & 0x10) == 0) {
    _obstack_begin(&DAT_0008c860,1000,0,PTR_xmalloc_0008bfc0,PTR_free_0008bfac);
    bfd_link_hash_traverse(DAT_0008cc1c,FUN_00021270,0);
  }
  DAT_0008c760 = DAT_0008c760 + 1;
  for (puVar12 = DAT_0008c828; puVar12 != (undefined4 *)0x0; puVar12 = (undefined4 *)*puVar12) {
    FUN_0001f550();
  }
  FUN_00030690(DAT_0008cc30,&DAT_0008cc00,DAT_0008cd50);
  return;
}

