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

void pe_dll_generate_def_file(char *pe_out_def_filename)

{
  def_file_import *pdVar1;
  char cVar2;
  FILE *__stream;
  int iVar3;
  def_file_section *pdVar4;
  int iVar5;
  char *pcVar6;
  def_file_export *pdVar7;
  
  __stream = fopen64(pe_out_def_filename,"w");
  if (__stream == (FILE *)0x0) {
    pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);
    einfo(pcVar6,pe_out_def_filename);
  }
  if (pe_def_file == (def_file *)0x0) {
    pcVar6 = (char *)dcgettext(0,"; no contents available\n",5);
    fprintf(__stream,pcVar6);
    goto LAB_0006414e;
  }
  if (pe_def_file->name != (char *)0x0) {
    if (pe_def_file->is_dll == 0) {
      fwrite("NAME ",1,5,__stream);
    }
    else {
      fwrite("LIBRARY ",1,8,__stream);
    }
    quoteput(pe_def_file->name,(FILE *)__stream,1);
    if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)
        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {
      fwrite(" BASE=0x",1,8,__stream);
      fprintf(__stream,"%016llx",
              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,
              *(undefined4 *)
               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));
    }
    fputc(10,__stream);
  }
  if (pe_def_file->description != (char *)0x0) {
    fwrite("DESCRIPTION ",1,0xc,__stream);
    quoteput(pe_def_file->description,(FILE *)__stream,1);
    fputc(10,__stream);
  }
  if (pe_def_file->version_minor == -1) {
    if (pe_def_file->version_major != -1) {
      pcVar6 = "VERSION %d\n";
      goto LAB_000640a9;
    }
  }
  else {
    pcVar6 = "VERSION %d.%d\n";
LAB_000640a9:
    fprintf(__stream,pcVar6,pe_def_file->version_major);
  }
  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {
    iVar3 = -1;
    if (pe_def_file->stack_commit != -1) {
LAB_000640ee:
      pcVar6 = "STACKSIZE 0x%x,0x%x\n";
LAB_000640f6:
      fprintf(__stream,pcVar6,iVar3);
      iVar3 = pe_def_file->heap_reserve;
      goto LAB_00064109;
    }
    if (pe_def_file->heap_commit != -1) {
      iVar3 = -1;
      goto LAB_00064115;
    }
  }
  else {
    fputc(10,__stream);
    if (pe_def_file->stack_commit != -1) {
      iVar3 = pe_def_file->stack_reserve;
      goto LAB_000640ee;
    }
    iVar3 = pe_def_file->stack_reserve;
    if (iVar3 != -1) {
      pcVar6 = "STACKSIZE 0x%x\n";
      goto LAB_000640f6;
    }
    iVar3 = pe_def_file->heap_reserve;
LAB_00064109:
    if (pe_def_file->heap_commit == -1) {
      if (iVar3 == -1) goto LAB_0006412d;
      pcVar6 = "HEAPSIZE 0x%x\n";
    }
    else {
LAB_00064115:
      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";
    }
    fprintf(__stream,pcVar6,iVar3);
  }
LAB_0006412d:
  if ((0 < pe_def_file->num_section_defs) &&
     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {
    iVar3 = 0;
    do {
      fwrite(&DAT_0007af9a,1,4,__stream);
      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);
      pdVar4 = pe_def_file->section_defs + iVar3;
      if (pdVar4->class != (char *)0x0) {
        fwrite(" CLASS ",1,7,__stream);
        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);
        pdVar4 = pe_def_file->section_defs + iVar3;
      }
      if (pdVar4->flag_read == '\0') {
        if (pdVar4->flag_write == '\0') goto LAB_000643ba;
LAB_00064498:
        fwrite(" WRITE",1,6,__stream);
        pdVar4 = pe_def_file->section_defs + iVar3;
        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;
LAB_000643c4:
        cVar2 = pdVar4->flag_shared;
      }
      else {
        fwrite(" READ",1,5,__stream);
        pdVar4 = pe_def_file->section_defs + iVar3;
        if (pdVar4->flag_write != '\0') goto LAB_00064498;
LAB_000643ba:
        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;
LAB_000644c3:
        fwrite(" EXECUTE",1,8,__stream);
        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;
      }
      if (cVar2 != '\0') {
        fwrite(" SHARED",1,7,__stream);
      }
      iVar3 = iVar3 + 1;
      fputc(10,__stream);
    } while (iVar3 < pe_def_file->num_section_defs);
  }
  if ((0 < pe_def_file->num_exports) &&
     (fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports)) {
    iVar3 = 0;
    do {
      pdVar7 = pe_def_file->exports + iVar3;
      fwrite(&DAT_0007af9a,1,4,__stream);
      quoteput(pdVar7->name,(FILE *)__stream,0);
      if ((pdVar7->internal_name != (char *)0x0) &&
         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {
        fwrite(&DAT_0006c0d1,1,3,__stream);
        quoteput(pdVar7->internal_name,(FILE *)__stream,0);
      }
      if (pdVar7->ordinal != -1) {
        fprintf(__stream," @%d",pdVar7->ordinal);
      }
      if (pdVar7->flag_private == '\0') {
        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;
LAB_000642de:
        fwrite(" CONSTANT",1,9,__stream);
        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;
LAB_00064234:
        cVar2 = pdVar7->flag_data;
      }
      else {
        fwrite(" PRIVATE",1,8,__stream);
        if (pdVar7->flag_constant != '\0') goto LAB_000642de;
LAB_0006422a:
        if (pdVar7->flag_noname == '\0') goto LAB_00064234;
LAB_000642fc:
        fwrite(" NONAME",1,7,__stream);
        cVar2 = pdVar7->flag_data;
      }
      if (cVar2 != '\0') {
        fwrite(" DATA",1,5,__stream);
      }
      iVar3 = iVar3 + 1;
      fputc(10,__stream);
    } while (iVar3 < pe_def_file->num_exports);
  }
  if ((0 < pe_def_file->num_imports) &&
     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports)) {
    iVar3 = 0;
    do {
      pdVar1 = pe_def_file->imports + iVar3;
      fwrite(&DAT_0007af9a,1,4,__stream);
      pcVar6 = pdVar1->internal_name;
      if ((pcVar6 != (char *)0x0) &&
         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {
        quoteput(pcVar6,(FILE *)__stream,0);
        fwrite(&DAT_0006c0d1,1,3,__stream);
      }
      quoteput(pdVar1->module->name,(FILE *)__stream,0);
      fputc(0x2e,__stream);
      if (pdVar1->name == (char *)0x0) {
        fprintf(__stream,"%d",pdVar1->ordinal);
      }
      else {
        quoteput(pdVar1->name,(FILE *)__stream,0);
      }
      if (pdVar1->its_name != (char *)0x0) {
        fwrite(&DAT_001acd9c,1,4,__stream);
        quoteput(pdVar1->its_name,(FILE *)__stream,0);
      }
      iVar3 = iVar3 + 1;
      fputc(10,__stream);
    } while (iVar3 < pe_def_file->num_imports);
  }
LAB_0006414e:
  iVar3 = fclose(__stream);
  if (iVar3 != -1) {
    return;
  }
  pcVar6 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);
  einfo(pcVar6,pe_out_def_filename);
  return;
}



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

void FUN_00063fa0(char *param_1)

{
  char cVar1;
  FILE *__stream;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined *puVar8;
  
  __stream = fopen64(param_1,"w");
  if (__stream == (FILE *)0x0) {
    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);
    FUN_00034d20(uVar4,param_1);
  }
  if (DAT_001d0218 == (int *)0x0) {
    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);
    fprintf(__stream,pcVar5);
    goto LAB_0006414e;
  }
  if (*DAT_001d0218 != 0) {
    if (DAT_001d0218[1] == 0) {
      fwrite("NAME ",1,5,__stream);
    }
    else {
      fwrite("LIBRARY ",1,8,__stream);
    }
    FUN_000625f0();
    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||
        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {
      fwrite(" BASE=0x",1,8,__stream);
      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),
              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));
    }
    fputc(10,__stream);
  }
  if (DAT_001d0218[4] != 0) {
    fwrite("DESCRIPTION ",1,0xc,__stream);
    FUN_000625f0();
    fputc(10,__stream);
  }
  if (DAT_001d0218[0x11] == -1) {
    if (DAT_001d0218[0x10] != -1) {
      pcVar5 = "VERSION %d\n";
      goto LAB_000640a9;
    }
  }
  else {
    pcVar5 = "VERSION %d.%d\n";
LAB_000640a9:
    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);
  }
  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {
    iVar2 = -1;
    if (DAT_001d0218[6] != -1) {
LAB_000640ee:
      pcVar5 = "STACKSIZE 0x%x,0x%x\n";
LAB_000640f6:
      fprintf(__stream,pcVar5,iVar2);
      iVar2 = DAT_001d0218[7];
      goto LAB_00064109;
    }
    if (DAT_001d0218[8] != -1) {
      iVar2 = -1;
      goto LAB_00064115;
    }
  }
  else {
    fputc(10,__stream);
    if (DAT_001d0218[6] != -1) {
      iVar2 = DAT_001d0218[5];
      goto LAB_000640ee;
    }
    iVar2 = DAT_001d0218[5];
    if (iVar2 != -1) {
      pcVar5 = "STACKSIZE 0x%x\n";
      goto LAB_000640f6;
    }
    iVar2 = DAT_001d0218[7];
LAB_00064109:
    if (DAT_001d0218[8] == -1) {
      if (iVar2 == -1) goto LAB_0006412d;
      pcVar5 = "HEAPSIZE 0x%x\n";
    }
    else {
LAB_00064115:
      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";
    }
    fprintf(__stream,pcVar5,iVar2);
  }
LAB_0006412d:
  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {
    puVar8 = &DAT_0007af9a;
    iVar2 = 0;
    pcVar5 = " CLASS ";
    do {
      fwrite(puVar8,1,4,__stream);
      iVar3 = iVar2 * 0xc;
      FUN_000625f0();
      iVar6 = DAT_001d0218[10] + iVar3;
      if (*(int *)(iVar6 + 4) != 0) {
        fwrite(pcVar5,1,7,__stream);
        FUN_000625f0();
        iVar6 = DAT_001d0218[10] + iVar3;
      }
      if (*(char *)(iVar6 + 8) == '\0') {
        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;
LAB_00064498:
        fwrite(" WRITE",1,6,__stream);
        iVar6 = DAT_001d0218[10] + iVar3;
        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;
LAB_000643c4:
        cVar1 = *(char *)(iVar6 + 0xb);
      }
      else {
        fwrite(" READ",1,5,__stream);
        iVar6 = DAT_001d0218[10] + iVar3;
        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;
LAB_000643ba:
        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;
LAB_000644c3:
        fwrite(" EXECUTE",1,8,__stream);
        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);
      }
      if (cVar1 != '\0') {
        fwrite(" SHARED",1,7,__stream);
      }
      iVar2 = iVar2 + 1;
      fputc(10,__stream);
    } while (iVar2 < DAT_001d0218[9]);
  }
  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {
    puVar8 = &DAT_0007af9a;
    iVar2 = 0;
    pcVar5 = " @%d";
    do {
      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);
      fwrite(puVar8,1,4,__stream);
      FUN_000625f0();
      if (((char *)puVar7[1] != (char *)0x0) &&
         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {
        fwrite(&DAT_0006c0d1,1,3,__stream);
        FUN_000625f0();
      }
      if (puVar7[3] != -1) {
        fprintf(__stream,pcVar5,puVar7[3]);
      }
      if (*(char *)(puVar7 + 5) == '\0') {
        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;
LAB_000642de:
        fwrite(" CONSTANT",1,9,__stream);
        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;
LAB_00064234:
        cVar1 = *(char *)((int)puVar7 + 0x17);
      }
      else {
        fwrite(" PRIVATE",1,8,__stream);
        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;
LAB_0006422a:
        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;
LAB_000642fc:
        fwrite(" NONAME",1,7,__stream);
        cVar1 = *(char *)((int)puVar7 + 0x17);
      }
      if (cVar1 != '\0') {
        fwrite(" DATA",1,5,__stream);
      }
      iVar2 = iVar2 + 1;
      fputc(10,__stream);
    } while (iVar2 < DAT_001d0218[0xb]);
  }
  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {
    puVar8 = &DAT_0007af9a;
    iVar2 = 0;
    do {
      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);
      fwrite(puVar8,1,4,__stream);
      pcVar5 = (char *)*puVar7;
      if ((pcVar5 != (char *)0x0) &&
         (((char *)puVar7[2] == (char *)0x0 ||
          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {
        FUN_000625f0(puVar8,pcVar5);
        fwrite(&DAT_0006c0d1,1,3,__stream);
      }
      FUN_000625f0(puVar8,pcVar5);
      fputc(0x2e,__stream);
      if (puVar7[2] == 0) {
        fprintf(__stream,"%d",puVar7[4]);
      }
      else {
        FUN_000625f0(puVar8,pcVar5);
      }
      if (puVar7[3] != 0) {
        fwrite(&DAT_001acd9c,1,4,__stream);
        FUN_000625f0();
      }
      iVar2 = iVar2 + 1;
      fputc(10,__stream);
    } while (iVar2 < DAT_001d0218[0xe]);
  }
LAB_0006414e:
  iVar2 = fclose(__stream);
  if (iVar2 != -1) {
    return;
  }
  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);
  FUN_00034d20(uVar4,param_1);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x16a057
SUB ESP,0x24
LEA EAX,[EBX + 0xffeac3d3]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00016490
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000646b0
MOV EAX,dword ptr [EBX + 0x2218]
TEST EAX,EAX
JZ 0x000646e0
MOV EDI,dword ptr [EAX]
TEST EDI,EDI
JZ 0x0006404b
MOV ECX,dword ptr [EAX + 0x4]
TEST ECX,ECX
JNZ 0x00064180
LEA EAX,[EBX + 0xfffdecb1]
PUSH ESI
PUSH 0x5
PUSH 0x1
PUSH EAX
CALL 0x000164c0
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0x2218]
MOV EDX,ESI
MOV ECX,0x1
MOV EAX,dword ptr [EAX]
CALL 0x000625f0
LEA EDI,[EBX + 0x23e0]
MOV EAX,dword ptr [EDI + 0x34]
MOV EAX,dword ptr [EAX + 0xa0]
MOV EDX,dword ptr [EAX + 0xa8]
OR EDX,dword ptr [EAX + 0xa4]
JNZ 0x00064670
SUB ESP,0x8
PUSH ESI
PUSH 0xa
CALL 0x00016a50
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JZ 0x0006408b
LEA EAX,[EBX + 0xfffdecc0]
PUSH ESI
PUSH 0xc
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EAX,dword ptr [EBX + 0x2218]
MOV ECX,0x1
MOV EDX,ESI
MOV EAX,dword ptr [EAX + 0x10]
CALL 0x000625f0
POP EBP
POP EAX
PUSH ESI
PUSH 0xa
CALL 0x00016a50
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x44]
MOV ECX,dword ptr [EAX + 0x40]
CMP EDX,-0x1
JNZ 0x00064170
CMP ECX,-0x1
JZ 0x000640b9
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdecdc]
PUSH ECX
PUSH EAX
PUSH ESI
CALL 0x000167a0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
CMP dword ptr [EAX + 0x14],-0x1
JNZ 0x000640cb
MOV ECX,dword ptr [EAX + 0x1c]
CMP ECX,-0x1
JZ 0x00064708
SUB ESP,0x8
PUSH ESI
PUSH 0xa
CALL 0x00016a50
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x18]
CMP EDX,-0x1
JZ 0x000641b8
MOV ECX,dword ptr [EAX + 0x14]
PUSH EDX
LEA EAX,[EBX + 0xfffdece8]
PUSH ECX
PUSH EAX
PUSH ESI
CALL 0x000167a0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x1c]
MOV ECX,dword ptr [EAX + 0x20]
CMP ECX,-0x1
JZ 0x000641a0
PUSH ECX
LEA EAX,[EBX + 0xfffded0d]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x000167a0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDI,dword ptr [EAX + 0x24]
TEST EDI,EDI
JG 0x00064360
MOV ECX,dword ptr [EAX + 0x2c]
TEST ECX,ECX
JG 0x000641d8
MOV EAX,dword ptr [EAX + 0x38]
TEST EAX,EAX
JG 0x00064508
SUB ESP,0xc
PUSH ESI
CALL 0x00016290
ADD ESP,0x10
CMP EAX,-0x1
JZ 0x00064640
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH EDX
LEA EAX,[EBX + 0xfffdeccd]
PUSH ECX
JMP 0x000640a9
LEA EAX,[EBX + 0xfffdeca8]
PUSH ESI
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x000164c0
ADD ESP,0x10
JMP 0x00064002
CMP EDX,-0x1
JZ 0x0006412d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffded21]
PUSH EDX
JMP 0x0006411d
MOV EDX,dword ptr [EAX + 0x14]
CMP EDX,-0x1
JZ 0x00064728
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdecfd]
PUSH EDX
JMP 0x000640f6
LEA EAX,[EBX + 0xfffded62]
PUSH ESI
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x2c]
TEST EDX,EDX
JLE 0x00064143
LEA EDX,[EBX + 0xffeacf9a]
LEA EDI,[EBX + 0xffe9e0d1]
XOR EBP,EBP
MOV dword ptr [ESP],EDX
LEA EDX,[EBX + 0xfffded6b]
MOV dword ptr [ESP + 0x8],EDI
MOV dword ptr [ESP + 0x4],EDX
JMP 0x0006425e
CMP byte ptr [EDI + 0x15],0x0
JNZ 0x000642de
CMP byte ptr [EDI + 0x16],0x0
JNZ 0x000642fc
CMP byte ptr [EDI + 0x17],0x0
JNZ 0x0006431a
SUB ESP,0x8
ADD EBP,0x1
PUSH ESI
PUSH 0xa
CALL 0x00016a50
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
CMP dword ptr [EAX + 0x2c],EBP
JLE 0x00064143
IMUL EDI,EBP,0x1c
ADD EDI,dword ptr [EAX + 0x30]
PUSH ESI
PUSH 0x4
PUSH 0x1
PUSH dword ptr [ESP + 0xc]
CALL 0x000164c0
MOV EAX,dword ptr [EDI]
XOR ECX,ECX
MOV EDX,ESI
CALL 0x000625f0
MOV EAX,dword ptr [EDI + 0x4]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0006429d
SUB ESP,0x8
PUSH dword ptr [EDI]
PUSH EAX
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00064338
MOV EAX,dword ptr [EDI + 0xc]
CMP EAX,-0x1
JZ 0x000642b6
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [ESP + 0xc]
PUSH ESI
CALL 0x000167a0
ADD ESP,0x10
CMP byte ptr [EDI + 0x14],0x0
JZ 0x00064220
LEA EAX,[EBX + 0xfffded70]
PUSH ESI
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x000164c0
ADD ESP,0x10
CMP byte ptr [EDI + 0x15],0x0
JZ 0x0006422a
LEA EAX,[EBX + 0xfffded79]
PUSH ESI
PUSH 0x9
PUSH 0x1
PUSH EAX
CALL 0x000164c0
ADD ESP,0x10
CMP byte ptr [EDI + 0x16],0x0
JZ 0x00064234
LEA EAX,[EBX + 0xfffded83]
PUSH ESI
PUSH 0x7
PUSH 0x1
PUSH EAX
CALL 0x000164c0
ADD ESP,0x10
CMP byte ptr [EDI + 0x17],0x0
JZ 0x0006423e
LEA EAX,[EBX + 0xfffded8b]
PUSH ESI
PUSH 0x5
PUSH 0x1
PUSH EAX
CALL 0x000164c0
ADD ESP,0x10
JMP 0x0006423e
PUSH ESI
PUSH 0x3
PUSH 0x1
PUSH dword ptr [ESP + 0x14]
CALL 0x000164c0
MOV EAX,dword ptr [EDI + 0x4]
XOR ECX,ECX
MOV EDX,ESI
CALL 0x000625f0
ADD ESP,0x10
JMP 0x0006429d
LEA EAX,[EBX + 0xfffded30]
PUSH ESI
PUSH 0xb
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0x24]
TEST ECX,ECX
JLE 0x00064138
LEA EAX,[EBX + 0xffeacf9a]
XOR EDI,EDI
MOV dword ptr [ESP],EAX
LEA EAX,[EBX + 0xfffded3c]
MOV dword ptr [ESP + 0x4],EAX
LEA EAX,[EBX + 0xfffded44]
MOV dword ptr [ESP + 0x8],EAX
JMP 0x000643ee
CMP byte ptr [EAX + 0x9],0x0
JNZ 0x00064498
CMP byte ptr [EAX + 0xa],0x0
JNZ 0x000644c3
CMP byte ptr [EAX + 0xb],0x0
JNZ 0x000644ec
SUB ESP,0x8
ADD EDI,0x1
PUSH ESI
PUSH 0xa
CALL 0x00016a50
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
CMP dword ptr [EAX + 0x24],EDI
JLE 0x00064138
PUSH ESI
PUSH 0x4
PUSH 0x1
PUSH dword ptr [ESP + 0xc]
CALL 0x000164c0
MOV EDX,dword ptr [EBX + 0x2218]
LEA EAX,[EDI + EDI*0x2]
XOR ECX,ECX
LEA EBP,[EAX*0x4 + 0x0]
MOV EDX,dword ptr [EDX + 0x28]
MOV EAX,dword ptr [EDX + EAX*0x4]
MOV EDX,ESI
CALL 0x000625f0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0x28]
ADD ECX,EBP
MOV EDX,dword ptr [ECX + 0x4]
MOV EAX,ECX
TEST EDX,EDX
JZ 0x00064466
PUSH ESI
PUSH 0x7
PUSH 0x1
PUSH dword ptr [ESP + 0x10]
CALL 0x000164c0
MOV EAX,dword ptr [EBX + 0x2218]
MOV EDX,ESI
XOR ECX,ECX
MOV EAX,dword ptr [EAX + 0x28]
MOV EAX,dword ptr [EAX + EBP*0x1 + 0x4]
CALL 0x000625f0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x28]
ADD EDX,EBP
MOV EAX,EDX
CMP byte ptr [EAX + 0x8],0x0
JZ 0x000643b0
PUSH ESI
PUSH 0x5
PUSH 0x1
PUSH dword ptr [ESP + 0x14]
CALL 0x000164c0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x28]
ADD EDX,EBP
MOV EAX,EDX
CMP byte ptr [EAX + 0x9],0x0
JZ 0x000643ba
LEA EAX,[EBX + 0xfffded4a]
PUSH ESI
PUSH 0x6
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0x28]
ADD ECX,EBP
MOV EAX,ECX
CMP byte ptr [EAX + 0xa],0x0
JZ 0x000643c4
LEA EAX,[EBX + 0xfffded51]
PUSH ESI
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
ADD EBP,dword ptr [EAX + 0x28]
MOV EAX,EBP
CMP byte ptr [EAX + 0xb],0x0
JZ 0x000643ce
LEA EAX,[EBX + 0xfffded5a]
PUSH ESI
PUSH 0x7
PUSH 0x1
PUSH EAX
CALL 0x000164c0
ADD ESP,0x10
JMP 0x000643ce
LEA EAX,[EBX + 0xfffded91]
PUSH ESI
PUSH 0xa
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EDX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EAX,dword ptr [EDX + 0x38]
TEST EAX,EAX
JLE 0x0006414e
LEA EAX,[EBX + 0xffeacf9a]
XOR EBP,EBP
MOV dword ptr [ESP],EAX
LEA EAX,[EBX + 0xffe9e0d1]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xffe9e013]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x000645a0
XOR ECX,ECX
MOV EDX,ESI
CALL 0x000625f0
MOV EAX,dword ptr [EDI + 0xc]
TEST EAX,EAX
JZ 0x00064580
LEA EAX,[EBX + 0xfffded9c]
PUSH ESI
PUSH 0x4
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EAX,dword ptr [EDI + 0xc]
XOR ECX,ECX
MOV EDX,ESI
CALL 0x000625f0
ADD ESP,0x10
SUB ESP,0x8
ADD EBP,0x1
PUSH ESI
PUSH 0xa
CALL 0x00016a50
MOV EDX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
CMP dword ptr [EDX + 0x38],EBP
JLE 0x0006414e
MOV EDX,dword ptr [EDX + 0x3c]
PUSH ESI
LEA EAX,[EBP + EBP*0x2]
PUSH 0x4
PUSH 0x1
LEA EDI,[EDX + EAX*0x8]
PUSH dword ptr [ESP + 0xc]
CALL 0x000164c0
MOV ECX,dword ptr [EDI]
MOV dword ptr [ESP + 0x14],ECX
ADD ESP,0x10
TEST ECX,ECX
JZ 0x000645fb
MOV EAX,dword ptr [EDI + 0x8]
TEST EAX,EAX
JZ 0x000645dd
SUB ESP,0x8
PUSH EAX
PUSH ECX
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000645fb
MOV EAX,dword ptr [ESP + 0x4]
XOR ECX,ECX
MOV EDX,ESI
CALL 0x000625f0
PUSH ESI
PUSH 0x3
PUSH 0x1
PUSH dword ptr [ESP + 0x14]
CALL 0x000164c0
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x4]
XOR ECX,ECX
MOV EDX,ESI
ADD EAX,0x8
CALL 0x000625f0
SUB ESP,0x8
PUSH ESI
PUSH 0x2e
CALL 0x00016a50
MOV EAX,dword ptr [EDI + 0x8]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00064550
SUB ESP,0x4
PUSH dword ptr [EDI + 0x10]
PUSH dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x000167a0
ADD ESP,0x10
JMP 0x00064559
SUB ESP,0x4
LEA EAX,[EBX + 0xffeaee52]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00034d20
ADD ESP,0x10
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xfffdecb7]
PUSH ESI
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x000164c0
MOV EAX,dword ptr [EDI + 0x34]
MOV EAX,dword ptr [EAX + 0xa0]
PUSH dword ptr [EAX + 0xa8]
PUSH dword ptr [EAX + 0xa4]
LEA EAX,[EBX + 0xffead032]
PUSH EAX
PUSH ESI
CALL 0x000167a0
ADD ESP,0x20
JMP 0x00064037
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf338]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP EBP
POP EDX
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00034d20
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00063fdd
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdeda1]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP EDI
POP EBP
PUSH EAX
PUSH ESI
CALL 0x000167a0
ADD ESP,0x10
JMP 0x0006414e
MOV EDX,dword ptr [EAX + 0x18]
CMP EDX,-0x1
JNZ 0x000640ee
MOV ECX,dword ptr [EAX + 0x20]
CMP ECX,-0x1
JZ 0x0006412d
JMP 0x00064115
MOV EDX,dword ptr [EAX + 0x1c]
JMP 0x00064109
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00063fa0(char *param_1)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}\n\n" comment (function_definition "void FUN_00063fa0(char *param_1)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00063fa0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (expression_statement "__stream = fopen64(param_1,"w");" (assignment_expression "__stream = fopen64(param_1,"w")" identifier = (call_expression "fopen64(param_1,"w")" identifier (argument_list "(param_1,"w")" ( identifier , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }" { (expression_statement "uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5)" identifier = (call_expression "dcgettext(0,"%P: can\'t open output def file %s\n",5)" identifier (argument_list "(0,"%P: can\'t open output def file %s\n",5)" ( number_literal , (string_literal ""%P: can\'t open output def file %s\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar4,param_1);" (call_expression "FUN_00034d20(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }" if (parenthesized_expression "(DAT_001d0218 == (int *)0x0)" ( (binary_expression "DAT_001d0218 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"; no contents available\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"; no contents available\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"; no contents available\n",5)" identifier (argument_list "(0,"; no contents available\n",5)" ( number_literal , (string_literal ""; no contents available\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar5);" (call_expression "fprintf(__stream,pcVar5)" identifier (argument_list "(__stream,pcVar5)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0006414e;" goto statement_identifier ;) })) (if_statement "if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(*DAT_001d0218 != 0)" ( (binary_expression "*DAT_001d0218 != 0" (pointer_expression "*DAT_001d0218" * identifier) != number_literal) )) (compound_statement "{\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }" { (if_statement "if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" if (parenthesized_expression "(DAT_001d0218[1] == 0)" ( (binary_expression "DAT_001d0218[1] == 0" (subscript_expression "DAT_001d0218[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("NAME ",1,5,__stream);\n    }" { (expression_statement "fwrite("NAME ",1,5,__stream);" (call_expression "fwrite("NAME ",1,5,__stream)" identifier (argument_list "("NAME ",1,5,__stream)" ( (string_literal ""NAME "" " string_content ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" else (compound_statement "{\n      fwrite("LIBRARY ",1,8,__stream);\n    }" { (expression_statement "fwrite("LIBRARY ",1,8,__stream);" (call_expression "fwrite("LIBRARY ",1,8,__stream)" identifier (argument_list "("LIBRARY ",1,8,__stream)" ( (string_literal ""LIBRARY "" " string_content ") , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }" if (parenthesized_expression "(*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0)" ( (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0" (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0" (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa8" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) != number_literal) || (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0" (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa4" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) != number_literal)) )) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }" { (expression_statement "fwrite(" BASE=0x",1,8,__stream);" (call_expression "fwrite(" BASE=0x",1,8,__stream)" identifier (argument_list "(" BASE=0x",1,8,__stream)" ( (string_literal "" BASE=0x"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));" (call_expression "fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8))" identifier (argument_list "(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8))" ( identifier , (string_literal ""%016llx"" " string_content ") , (pointer_expression "*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa4" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" * (cast_expression "(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa8" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) ))) ;) })) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(DAT_001d0218[4] != 0)" ( (binary_expression "DAT_001d0218[4] != 0" (subscript_expression "DAT_001d0218[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }" { (expression_statement "fwrite("DESCRIPTION ",1,0xc,__stream);" (call_expression "fwrite("DESCRIPTION ",1,0xc,__stream)" identifier (argument_list "("DESCRIPTION ",1,0xc,__stream)" ( (string_literal ""DESCRIPTION "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" if (parenthesized_expression "(DAT_001d0218[0x11] == -1)" ( (binary_expression "DAT_001d0218[0x11] == -1" (subscript_expression "DAT_001d0218[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }" { (if_statement "if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" if (parenthesized_expression "(DAT_001d0218[0x10] != -1)" ( (binary_expression "DAT_001d0218[0x10] != -1" (subscript_expression "DAT_001d0218[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" { (expression_statement "pcVar5 = "VERSION %d\n";" (assignment_expression "pcVar5 = "VERSION %d\n"" identifier = (string_literal ""VERSION %d\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000640a9;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" else (compound_statement "{\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" { (expression_statement "pcVar5 = "VERSION %d.%d\n";" (assignment_expression "pcVar5 = "VERSION %d.%d\n"" identifier = (string_literal ""VERSION %d.%d\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);" statement_identifier : (expression_statement "fprintf(__stream,pcVar5,DAT_001d0218[0x10]);" (call_expression "fprintf(__stream,pcVar5,DAT_001d0218[0x10])" identifier (argument_list "(__stream,pcVar5,DAT_001d0218[0x10])" ( identifier , identifier , (subscript_expression "DAT_001d0218[0x10]" identifier [ number_literal ]) ))) ;)) }))) (if_statement "if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" if (parenthesized_expression "((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1))" ( (binary_expression "(DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)" (parenthesized_expression "(DAT_001d0218[5] == -1)" ( (binary_expression "DAT_001d0218[5] == -1" (subscript_expression "DAT_001d0218[5]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(DAT_001d0218[7] == -1)" ( (binary_expression "DAT_001d0218[7] == -1" (subscript_expression "DAT_001d0218[7]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }" if (parenthesized_expression "(DAT_001d0218[6] != -1)" ( (binary_expression "DAT_001d0218[6] != -1" (subscript_expression "DAT_001d0218[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }" { (labeled_statement "LAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";" statement_identifier : (expression_statement "pcVar5 = "STACKSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar5 = "STACKSIZE 0x%x,0x%x\n"" identifier = (string_literal ""STACKSIZE 0x%x,0x%x\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);" statement_identifier : (expression_statement "fprintf(__stream,pcVar5,iVar2);" (call_expression "fprintf(__stream,pcVar5,iVar2)" identifier (argument_list "(__stream,pcVar5,iVar2)" ( identifier , identifier , identifier ))) ;)) (expression_statement "iVar2 = DAT_001d0218[7];" (assignment_expression "iVar2 = DAT_001d0218[7]" identifier = (subscript_expression "DAT_001d0218[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00064109;" goto statement_identifier ;) })) (if_statement "if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }" if (parenthesized_expression "(DAT_001d0218[8] != -1)" ( (binary_expression "DAT_001d0218[8] != -1" (subscript_expression "DAT_001d0218[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar2 = -1;\n      goto LAB_00064115;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00064115;" goto statement_identifier ;) })) }) (else_clause "else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" else (compound_statement "{\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" { (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }" if (parenthesized_expression "(DAT_001d0218[6] != -1)" ( (binary_expression "DAT_001d0218[6] != -1" (subscript_expression "DAT_001d0218[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }" { (expression_statement "iVar2 = DAT_001d0218[5];" (assignment_expression "iVar2 = DAT_001d0218[5]" identifier = (subscript_expression "DAT_001d0218[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000640ee;" goto statement_identifier ;) })) (expression_statement "iVar2 = DAT_001d0218[5];" (assignment_expression "iVar2 = DAT_001d0218[5]" identifier = (subscript_expression "DAT_001d0218[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" { (expression_statement "pcVar5 = "STACKSIZE 0x%x\n";" (assignment_expression "pcVar5 = "STACKSIZE 0x%x\n"" identifier = (string_literal ""STACKSIZE 0x%x\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000640f6;" goto statement_identifier ;) })) (expression_statement "iVar2 = DAT_001d0218[7];" (assignment_expression "iVar2 = DAT_001d0218[7]" identifier = (subscript_expression "DAT_001d0218[7]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" statement_identifier : (if_statement "if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" if (parenthesized_expression "(DAT_001d0218[8] == -1)" ( (binary_expression "DAT_001d0218[8] == -1" (subscript_expression "DAT_001d0218[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }" { (if_statement "if (iVar2 == -1) goto LAB_0006412d;" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006412d;" goto statement_identifier ;)) (expression_statement "pcVar5 = "HEAPSIZE 0x%x\n";" (assignment_expression "pcVar5 = "HEAPSIZE 0x%x\n"" identifier = (string_literal ""HEAPSIZE 0x%x\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" else (compound_statement "{\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" { (labeled_statement "LAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";" statement_identifier : (expression_statement "pcVar5 = "HEAPSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar5 = "HEAPSIZE 0x%x,0x%x\n"" identifier = (string_literal ""HEAPSIZE 0x%x,0x%x\n"" " string_content escape_sequence ")) ;)) })))) (expression_statement "fprintf(__stream,pcVar5,iVar2);" (call_expression "fprintf(__stream,pcVar5,iVar2)" identifier (argument_list "(__stream,pcVar5,iVar2)" ( identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" statement_identifier : (if_statement "if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" if (parenthesized_expression "((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9]))" ( (binary_expression "(0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])" (parenthesized_expression "(0 < DAT_001d0218[9])" ( (binary_expression "0 < DAT_001d0218[9]" number_literal < (subscript_expression "DAT_001d0218[9]" identifier [ number_literal ])) )) && (parenthesized_expression "(fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])" ( (comma_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9]" (call_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream)" identifier (argument_list "("\nSECTIONS\n\n",1,0xb,__stream)" ( (string_literal ""\nSECTIONS\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < DAT_001d0218[9]" number_literal < (subscript_expression "DAT_001d0218[9]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" { (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" identifier = (pointer_expression "&DAT_0007af9a" & identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = " CLASS ";" (assignment_expression "pcVar5 = " CLASS "" identifier = (string_literal "" CLASS "" " string_content ")) ;) (do_statement "do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);" do (compound_statement "{\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" identifier (argument_list "(puVar8,1,4,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "iVar3 = iVar2 * 0xc;" (assignment_expression "iVar3 = iVar2 * 0xc" identifier = (binary_expression "iVar2 * 0xc" identifier * number_literal)) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }" { (expression_statement "fwrite(pcVar5,1,7,__stream);" (call_expression "fwrite(pcVar5,1,7,__stream)" identifier (argument_list "(pcVar5,1,7,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) })) (if_statement "if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 8) == '\0')" ( (binary_expression "*(char *)(iVar6 + 8) == '\0'" (pointer_expression "*(char *)(iVar6 + 8)" * (cast_expression "(char *)(iVar6 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }" { (if_statement "if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;" if (parenthesized_expression "(*(char *)(iVar6 + 9) == '\0')" ( (binary_expression "*(char *)(iVar6 + 9) == '\0'" (pointer_expression "*(char *)(iVar6 + 9)" * (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000643ba;" goto statement_identifier ;)) (labeled_statement "LAB_00064498:\n        fwrite(" WRITE",1,6,__stream);" statement_identifier : (expression_statement "fwrite(" WRITE",1,6,__stream);" (call_expression "fwrite(" WRITE",1,6,__stream)" identifier (argument_list "(" WRITE",1,6,__stream)" ( (string_literal "" WRITE"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;" if (parenthesized_expression "(*(char *)(iVar6 + 10) != '\0')" ( (binary_expression "*(char *)(iVar6 + 10) != '\0'" (pointer_expression "*(char *)(iVar6 + 10)" * (cast_expression "(char *)(iVar6 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 10)" ( (binary_expression "iVar6 + 10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000644c3;" goto statement_identifier ;)) (labeled_statement "LAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);" statement_identifier : (expression_statement "cVar1 = *(char *)(iVar6 + 0xb);" (assignment_expression "cVar1 = *(char *)(iVar6 + 0xb)" identifier = (pointer_expression "*(char *)(iVar6 + 0xb)" * (cast_expression "(char *)(iVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xb)" ( (binary_expression "iVar6 + 0xb" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" else (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" { (expression_statement "fwrite(" READ",1,5,__stream);" (call_expression "fwrite(" READ",1,5,__stream)" identifier (argument_list "(" READ",1,5,__stream)" ( (string_literal "" READ"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;" if (parenthesized_expression "(*(char *)(iVar6 + 9) != '\0')" ( (binary_expression "*(char *)(iVar6 + 9) != '\0'" (pointer_expression "*(char *)(iVar6 + 9)" * (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00064498;" goto statement_identifier ;)) (labeled_statement "LAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;" statement_identifier : (if_statement "if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;" if (parenthesized_expression "(*(char *)(iVar6 + 10) == '\0')" ( (binary_expression "*(char *)(iVar6 + 10) == '\0'" (pointer_expression "*(char *)(iVar6 + 10)" * (cast_expression "(char *)(iVar6 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 10)" ( (binary_expression "iVar6 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000643c4;" goto statement_identifier ;))) (labeled_statement "LAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);" statement_identifier : (expression_statement "fwrite(" EXECUTE",1,8,__stream);" (call_expression "fwrite(" EXECUTE",1,8,__stream)" identifier (argument_list "(" EXECUTE",1,8,__stream)" ( (string_literal "" EXECUTE"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);" (assignment_expression "cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb)" identifier = (pointer_expression "*(char *)(iVar3 + DAT_001d0218[10] + 0xb)" * (cast_expression "(char *)(iVar3 + DAT_001d0218[10] + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + DAT_001d0218[10] + 0xb)" ( (binary_expression "iVar3 + DAT_001d0218[10] + 0xb" (binary_expression "iVar3 + DAT_001d0218[10]" identifier + (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ])) + number_literal) ))))) ;) }))) (if_statement "if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        fwrite(" SHARED",1,7,__stream);\n      }" { (expression_statement "fwrite(" SHARED",1,7,__stream);" (call_expression "fwrite(" SHARED",1,7,__stream)" identifier (argument_list "(" SHARED",1,7,__stream)" ( (string_literal "" SHARED"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar2 < DAT_001d0218[9])" ( (binary_expression "iVar2 < DAT_001d0218[9]" identifier < (subscript_expression "DAT_001d0218[9]" identifier [ number_literal ])) )) ;) }))) (if_statement "if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }" if (parenthesized_expression "((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb]))" ( (binary_expression "(0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])" (parenthesized_expression "(0 < DAT_001d0218[0xb])" ( (binary_expression "0 < DAT_001d0218[0xb]" number_literal < (subscript_expression "DAT_001d0218[0xb]" identifier [ number_literal ])) )) && (parenthesized_expression "(fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])" ( (comma_expression "fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb]" (call_expression "fwrite("EXPORTS\n",1,8,__stream)" identifier (argument_list "("EXPORTS\n",1,8,__stream)" ( (string_literal ""EXPORTS\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < DAT_001d0218[0xb]" number_literal < (subscript_expression "DAT_001d0218[0xb]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }" { (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" identifier = (pointer_expression "&DAT_0007af9a" & identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = " @%d";" (assignment_expression "pcVar5 = " @%d"" identifier = (string_literal "" @%d"" " string_content ")) ;) (do_statement "do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);" do (compound_statement "{\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);" (assignment_expression "puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc])" identifier = (cast_expression "(undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 * 0x1c + DAT_001d0218[0xc])" ( (binary_expression "iVar2 * 0x1c + DAT_001d0218[0xc]" (binary_expression "iVar2 * 0x1c" identifier * number_literal) + (subscript_expression "DAT_001d0218[0xc]" identifier [ number_literal ])) )))) ;) (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" identifier (argument_list "(puVar8,1,4,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }" if (parenthesized_expression "(((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0))" ( (binary_expression "((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)" (parenthesized_expression "((char *)puVar7[1] != (char *)0x0)" ( (binary_expression "(char *)puVar7[1] != (char *)0x0" (cast_expression "(char *)puVar7[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7)" identifier = (call_expression "strcmp((char *)puVar7[1],(char *)*puVar7)" identifier (argument_list "((char *)puVar7[1],(char *)*puVar7)" ( (cast_expression "(char *)puVar7[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) , (cast_expression "(char *)*puVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }" { (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" identifier (argument_list "(&DAT_0006c0d1,1,3,__stream)" ( (pointer_expression "&DAT_0006c0d1" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }" if (parenthesized_expression "(puVar7[3] != -1)" ( (binary_expression "puVar7[3] != -1" (subscript_expression "puVar7[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }" { (expression_statement "fprintf(__stream,pcVar5,puVar7[3]);" (call_expression "fprintf(__stream,pcVar5,puVar7[3])" identifier (argument_list "(__stream,pcVar5,puVar7[3])" ( identifier , identifier , (subscript_expression "puVar7[3]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" if (parenthesized_expression "(*(char *)(puVar7 + 5) == '\0')" ( (binary_expression "*(char *)(puVar7 + 5) == '\0'" (pointer_expression "*(char *)(puVar7 + 5)" * (cast_expression "(char *)(puVar7 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" { (if_statement "if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x15) == '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x15) == '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x15)" * (cast_expression "(char *)((int)puVar7 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x15)" ( (binary_expression "(int)puVar7 + 0x15" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0006422a;" goto statement_identifier ;)) (labeled_statement "LAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);" statement_identifier : (expression_statement "fwrite(" CONSTANT",1,9,__stream);" (call_expression "fwrite(" CONSTANT",1,9,__stream)" identifier (argument_list "(" CONSTANT",1,9,__stream)" ( (string_literal "" CONSTANT"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (if_statement "if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x16) != '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x16) != '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x16)" * (cast_expression "(char *)((int)puVar7 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x16)" ( (binary_expression "(int)puVar7 + 0x16" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000642fc;" goto statement_identifier ;)) (labeled_statement "LAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);" statement_identifier : (expression_statement "cVar1 = *(char *)((int)puVar7 + 0x17);" (assignment_expression "cVar1 = *(char *)((int)puVar7 + 0x17)" identifier = (pointer_expression "*(char *)((int)puVar7 + 0x17)" * (cast_expression "(char *)((int)puVar7 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x17)" ( (binary_expression "(int)puVar7 + 0x17" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" else (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" { (expression_statement "fwrite(" PRIVATE",1,8,__stream);" (call_expression "fwrite(" PRIVATE",1,8,__stream)" identifier (argument_list "(" PRIVATE",1,8,__stream)" ( (string_literal "" PRIVATE"" " string_content ") , number_literal , number_literal , identifier ))) ;) (if_statement "if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x15) != '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x15) != '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x15)" * (cast_expression "(char *)((int)puVar7 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x15)" ( (binary_expression "(int)puVar7 + 0x15" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000642de;" goto statement_identifier ;)) (labeled_statement "LAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;" statement_identifier : (if_statement "if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x16) == '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x16) == '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x16)" * (cast_expression "(char *)((int)puVar7 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x16)" ( (binary_expression "(int)puVar7 + 0x16" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00064234;" goto statement_identifier ;))) (labeled_statement "LAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);" statement_identifier : (expression_statement "fwrite(" NONAME",1,7,__stream);" (call_expression "fwrite(" NONAME",1,7,__stream)" identifier (argument_list "(" NONAME",1,7,__stream)" ( (string_literal "" NONAME"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "cVar1 = *(char *)((int)puVar7 + 0x17);" (assignment_expression "cVar1 = *(char *)((int)puVar7 + 0x17)" identifier = (pointer_expression "*(char *)((int)puVar7 + 0x17)" * (cast_expression "(char *)((int)puVar7 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x17)" ( (binary_expression "(int)puVar7 + 0x17" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        fwrite(" DATA",1,5,__stream);\n      }" { (expression_statement "fwrite(" DATA",1,5,__stream);" (call_expression "fwrite(" DATA",1,5,__stream)" identifier (argument_list "(" DATA",1,5,__stream)" ( (string_literal "" DATA"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar2 < DAT_001d0218[0xb])" ( (binary_expression "iVar2 < DAT_001d0218[0xb]" identifier < (subscript_expression "DAT_001d0218[0xb]" identifier [ number_literal ])) )) ;) })) (if_statement "if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }" if (parenthesized_expression "((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe]))" ( (binary_expression "(0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])" (parenthesized_expression "(0 < DAT_001d0218[0xe])" ( (binary_expression "0 < DAT_001d0218[0xe]" number_literal < (subscript_expression "DAT_001d0218[0xe]" identifier [ number_literal ])) )) && (parenthesized_expression "(fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])" ( (comma_expression "fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe]" (call_expression "fwrite("\nIMPORTS\n\n",1,10,__stream)" identifier (argument_list "("\nIMPORTS\n\n",1,10,__stream)" ( (string_literal ""\nIMPORTS\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < DAT_001d0218[0xe]" number_literal < (subscript_expression "DAT_001d0218[0xe]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }" { (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" identifier = (pointer_expression "&DAT_0007af9a" & identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);" do (compound_statement "{\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);" (assignment_expression "puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18)" identifier = (cast_expression "(undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0218[0xf] + iVar2 * 0x18)" ( (binary_expression "DAT_001d0218[0xf] + iVar2 * 0x18" (subscript_expression "DAT_001d0218[0xf]" identifier [ number_literal ]) + (binary_expression "iVar2 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" identifier (argument_list "(puVar8,1,4,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar5 = (char *)*puVar7;" (assignment_expression "pcVar5 = (char *)*puVar7" identifier = (cast_expression "(char *)*puVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" if (parenthesized_expression "((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0))))" ( (binary_expression "(pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))" ( (parenthesized_expression "((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0))" ( (binary_expression "(char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)" (binary_expression "(char *)puVar7[2] == (char *)0x0" (cast_expression "(char *)puVar7[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar5,(char *)puVar7[2])" identifier = (call_expression "strcmp(pcVar5,(char *)puVar7[2])" identifier (argument_list "(pcVar5,(char *)puVar7[2])" ( identifier , (cast_expression "(char *)puVar7[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" { (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" identifier (argument_list "(puVar8,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" identifier (argument_list "(&DAT_0006c0d1,1,3,__stream)" ( (pointer_expression "&DAT_0006c0d1" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" identifier (argument_list "(puVar8,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "fputc(0x2e,__stream);" (call_expression "fputc(0x2e,__stream)" identifier (argument_list "(0x2e,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }" if (parenthesized_expression "(puVar7[2] == 0)" ( (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        fprintf(__stream,"%d",puVar7[4]);\n      }" { (expression_statement "fprintf(__stream,"%d",puVar7[4]);" (call_expression "fprintf(__stream,"%d",puVar7[4])" identifier (argument_list "(__stream,"%d",puVar7[4])" ( identifier , (string_literal ""%d"" " string_content ") , (subscript_expression "puVar7[4]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n        FUN_000625f0(puVar8,pcVar5);\n      }" else (compound_statement "{\n        FUN_000625f0(puVar8,pcVar5);\n      }" { (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" identifier (argument_list "(puVar8,pcVar5)" ( identifier , identifier ))) ;) }))) (if_statement "if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }" if (parenthesized_expression "(puVar7[3] != 0)" ( (binary_expression "puVar7[3] != 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }" { (expression_statement "fwrite(&DAT_001acd9c,1,4,__stream);" (call_expression "fwrite(&DAT_001acd9c,1,4,__stream)" identifier (argument_list "(&DAT_001acd9c,1,4,__stream)" ( (pointer_expression "&DAT_001acd9c" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar2 < DAT_001d0218[0xe])" ( (binary_expression "iVar2 < DAT_001d0218[0xe]" identifier < (subscript_expression "DAT_001d0218[0xe]" identifier [ number_literal ])) )) ;) })) (labeled_statement "LAB_0006414e:\n  iVar2 = fclose(__stream);" statement_identifier : (expression_statement "iVar2 = fclose(__stream);" (assignment_expression "iVar2 = fclose(__stream)" identifier = (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (if_statement "if (iVar2 != -1) {\n    return;\n  }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5)" identifier = (call_expression "dcgettext(0,"%P: error closing file `%s\'\n",5)" identifier (argument_list "(0,"%P: error closing file `%s\'\n",5)" ( number_literal , (string_literal ""%P: error closing file `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar4,param_1);" (call_expression "FUN_00034d20(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( 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 */\n\nvoid pe_dll_generate_def_file(char *pe_out_def_filename)\n\n{\n  def_file_import *pdVar1;\n  char cVar2;\n  FILE *__stream;\n  int iVar3;\n  def_file_section *pdVar4;\n  int iVar5;\n  char *pcVar6;\n  def_file_export *pdVar7;\n  \n  __stream = fopen64(pe_out_def_filename,"w");\n  if (__stream == (FILE *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar6,pe_out_def_filename);\n  }\n  if (pe_def_file == (def_file *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar6);\n    goto LAB_0006414e;\n  }\n  if (pe_def_file->name != (char *)0x0) {\n    if (pe_def_file->is_dll == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    quoteput(pe_def_file->name,(FILE *)__stream,1);\n    if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));\n    }\n    fputc(10,__stream);\n  }\n  if (pe_def_file->description != (char *)0x0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    quoteput(pe_def_file->description,(FILE *)__stream,1);\n    fputc(10,__stream);\n  }\n  if (pe_def_file->version_minor == -1) {\n    if (pe_def_file->version_major != -1) {\n      pcVar6 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar6 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar6,pe_def_file->version_major);\n  }\n  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    iVar3 = -1;\n    if (pe_def_file->stack_commit != -1) {\nLAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);\n      iVar3 = pe_def_file->heap_reserve;\n      goto LAB_00064109;\n    }\n    if (pe_def_file->heap_commit != -1) {\n      iVar3 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (pe_def_file->stack_commit != -1) {\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }\n    iVar3 = pe_def_file->stack_reserve;\n    if (iVar3 != -1) {\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar3 = pe_def_file->heap_reserve;\nLAB_00064109:\n    if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar6,iVar3);\n  }\nLAB_0006412d:\n  if ((0 < pe_def_file->num_section_defs) &&\n     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    iVar3 = 0;\n    do {\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_section_defs);\n  }\n  if ((0 < pe_def_file->num_exports) &&\n     (fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports)) {\n    iVar3 = 0;\n    do {\n      pdVar7 = pe_def_file->exports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pdVar7->name,(FILE *)__stream,0);\n      if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }\n      if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_exports);\n  }\n  if ((0 < pe_def_file->num_imports) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports)) {\n    iVar3 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      pcVar6 = pdVar1->internal_name;\n      if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      quoteput(pdVar1->module->name,(FILE *)__stream,0);\n      fputc(0x2e,__stream);\n      if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_imports);\n  }\nLAB_0006414e:\n  iVar3 = fclose(__stream);\n  if (iVar3 != -1) {\n    return;\n  }\n  pcVar6 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);\n  einfo(pcVar6,pe_out_def_filename);\n  return;\n}\n\n" comment comment (function_definition "void pe_dll_generate_def_file(char *pe_out_def_filename)\n\n{\n  def_file_import *pdVar1;\n  char cVar2;\n  FILE *__stream;\n  int iVar3;\n  def_file_section *pdVar4;\n  int iVar5;\n  char *pcVar6;\n  def_file_export *pdVar7;\n  \n  __stream = fopen64(pe_out_def_filename,"w");\n  if (__stream == (FILE *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar6,pe_out_def_filename);\n  }\n  if (pe_def_file == (def_file *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar6);\n    goto LAB_0006414e;\n  }\n  if (pe_def_file->name != (char *)0x0) {\n    if (pe_def_file->is_dll == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    quoteput(pe_def_file->name,(FILE *)__stream,1);\n    if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));\n    }\n    fputc(10,__stream);\n  }\n  if (pe_def_file->description != (char *)0x0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    quoteput(pe_def_file->description,(FILE *)__stream,1);\n    fputc(10,__stream);\n  }\n  if (pe_def_file->version_minor == -1) {\n    if (pe_def_file->version_major != -1) {\n      pcVar6 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar6 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar6,pe_def_file->version_major);\n  }\n  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    iVar3 = -1;\n    if (pe_def_file->stack_commit != -1) {\nLAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);\n      iVar3 = pe_def_file->heap_reserve;\n      goto LAB_00064109;\n    }\n    if (pe_def_file->heap_commit != -1) {\n      iVar3 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (pe_def_file->stack_commit != -1) {\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }\n    iVar3 = pe_def_file->stack_reserve;\n    if (iVar3 != -1) {\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar3 = pe_def_file->heap_reserve;\nLAB_00064109:\n    if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar6,iVar3);\n  }\nLAB_0006412d:\n  if ((0 < pe_def_file->num_section_defs) &&\n     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    iVar3 = 0;\n    do {\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_section_defs);\n  }\n  if ((0 < pe_def_file->num_exports) &&\n     (fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports)) {\n    iVar3 = 0;\n    do {\n      pdVar7 = pe_def_file->exports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pdVar7->name,(FILE *)__stream,0);\n      if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }\n      if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_exports);\n  }\n  if ((0 < pe_def_file->num_imports) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports)) {\n    iVar3 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      pcVar6 = pdVar1->internal_name;\n      if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      quoteput(pdVar1->module->name,(FILE *)__stream,0);\n      fputc(0x2e,__stream);\n      if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_imports);\n  }\nLAB_0006414e:\n  iVar3 = fclose(__stream);\n  if (iVar3 != -1) {\n    return;\n  }\n  pcVar6 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);\n  einfo(pcVar6,pe_out_def_filename);\n  return;\n}" primitive_type (function_declarator "pe_dll_generate_def_file(char *pe_out_def_filename)" identifier (parameter_list "(char *pe_out_def_filename)" ( (parameter_declaration "char *pe_out_def_filename" primitive_type (pointer_declarator "*pe_out_def_filename" * identifier)) ))) (compound_statement "{\n  def_file_import *pdVar1;\n  char cVar2;\n  FILE *__stream;\n  int iVar3;\n  def_file_section *pdVar4;\n  int iVar5;\n  char *pcVar6;\n  def_file_export *pdVar7;\n  \n  __stream = fopen64(pe_out_def_filename,"w");\n  if (__stream == (FILE *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar6,pe_out_def_filename);\n  }\n  if (pe_def_file == (def_file *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar6);\n    goto LAB_0006414e;\n  }\n  if (pe_def_file->name != (char *)0x0) {\n    if (pe_def_file->is_dll == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    quoteput(pe_def_file->name,(FILE *)__stream,1);\n    if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));\n    }\n    fputc(10,__stream);\n  }\n  if (pe_def_file->description != (char *)0x0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    quoteput(pe_def_file->description,(FILE *)__stream,1);\n    fputc(10,__stream);\n  }\n  if (pe_def_file->version_minor == -1) {\n    if (pe_def_file->version_major != -1) {\n      pcVar6 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar6 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar6,pe_def_file->version_major);\n  }\n  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    iVar3 = -1;\n    if (pe_def_file->stack_commit != -1) {\nLAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);\n      iVar3 = pe_def_file->heap_reserve;\n      goto LAB_00064109;\n    }\n    if (pe_def_file->heap_commit != -1) {\n      iVar3 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (pe_def_file->stack_commit != -1) {\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }\n    iVar3 = pe_def_file->stack_reserve;\n    if (iVar3 != -1) {\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar3 = pe_def_file->heap_reserve;\nLAB_00064109:\n    if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar6,iVar3);\n  }\nLAB_0006412d:\n  if ((0 < pe_def_file->num_section_defs) &&\n     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    iVar3 = 0;\n    do {\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_section_defs);\n  }\n  if ((0 < pe_def_file->num_exports) &&\n     (fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports)) {\n    iVar3 = 0;\n    do {\n      pdVar7 = pe_def_file->exports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pdVar7->name,(FILE *)__stream,0);\n      if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }\n      if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_exports);\n  }\n  if ((0 < pe_def_file->num_imports) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports)) {\n    iVar3 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      pcVar6 = pdVar1->internal_name;\n      if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      quoteput(pdVar1->module->name,(FILE *)__stream,0);\n      fputc(0x2e,__stream);\n      if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_imports);\n  }\nLAB_0006414e:\n  iVar3 = fclose(__stream);\n  if (iVar3 != -1) {\n    return;\n  }\n  pcVar6 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);\n  einfo(pcVar6,pe_out_def_filename);\n  return;\n}" { (declaration "def_file_import *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "def_file_section *pdVar4;" type_identifier (pointer_declarator "*pdVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "def_file_export *pdVar7;" type_identifier (pointer_declarator "*pdVar7" * identifier) ;) (expression_statement "__stream = fopen64(pe_out_def_filename,"w");" (assignment_expression "__stream = fopen64(pe_out_def_filename,"w")" identifier = (call_expression "fopen64(pe_out_def_filename,"w")" identifier (argument_list "(pe_out_def_filename,"w")" ( identifier , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar6,pe_out_def_filename);\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar6,pe_out_def_filename);\n  }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%P: can\'t open output def file %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: can\'t open output def file %s\n",5)" identifier (argument_list "(0,"%P: can\'t open output def file %s\n",5)" ( number_literal , (string_literal ""%P: can\'t open output def file %s\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar6,pe_out_def_filename);" (call_expression "einfo(pcVar6,pe_out_def_filename)" identifier (argument_list "(pcVar6,pe_out_def_filename)" ( identifier , identifier ))) ;) })) (if_statement "if (pe_def_file == (def_file *)0x0) {\n    pcVar6 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar6);\n    goto LAB_0006414e;\n  }" if (parenthesized_expression "(pe_def_file == (def_file *)0x0)" ( (binary_expression "pe_def_file == (def_file *)0x0" identifier == (cast_expression "(def_file *)0x0" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar6 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar6);\n    goto LAB_0006414e;\n  }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"; no contents available\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"; no contents available\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"; no contents available\n",5)" identifier (argument_list "(0,"; no contents available\n",5)" ( number_literal , (string_literal ""; no contents available\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar6);" (call_expression "fprintf(__stream,pcVar6)" identifier (argument_list "(__stream,pcVar6)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0006414e;" goto statement_identifier ;) })) (if_statement "if (pe_def_file->name != (char *)0x0) {\n    if (pe_def_file->is_dll == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    quoteput(pe_def_file->name,(FILE *)__stream,1);\n    if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));\n    }\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(pe_def_file->name != (char *)0x0)" ( (binary_expression "pe_def_file->name != (char *)0x0" (field_expression "pe_def_file->name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (pe_def_file->is_dll == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    quoteput(pe_def_file->name,(FILE *)__stream,1);\n    if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));\n    }\n    fputc(10,__stream);\n  }" { (if_statement "if (pe_def_file->is_dll == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" if (parenthesized_expression "(pe_def_file->is_dll == 0)" ( (binary_expression "pe_def_file->is_dll == 0" (field_expression "pe_def_file->is_dll" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      fwrite("NAME ",1,5,__stream);\n    }" { (expression_statement "fwrite("NAME ",1,5,__stream);" (call_expression "fwrite("NAME ",1,5,__stream)" identifier (argument_list "("NAME ",1,5,__stream)" ( (string_literal ""NAME "" " string_content ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" else (compound_statement "{\n      fwrite("LIBRARY ",1,8,__stream);\n    }" { (expression_statement "fwrite("LIBRARY ",1,8,__stream);" (call_expression "fwrite("LIBRARY ",1,8,__stream)" identifier (argument_list "("LIBRARY ",1,8,__stream)" ( (string_literal ""LIBRARY "" " string_content ") , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "quoteput(pe_def_file->name,(FILE *)__stream,1);" (call_expression "quoteput(pe_def_file->name,(FILE *)__stream,1)" identifier (argument_list "(pe_def_file->name,(FILE *)__stream,1)" ( (field_expression "pe_def_file->name" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (if_statement "if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));\n    }" if (parenthesized_expression "(*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0)" ( (binary_expression "*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0" (binary_expression "*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)\n        != 0" (pointer_expression "*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" * (cast_expression "(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" ( (binary_expression "(int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4" (cast_expression "(int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" & (field_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" (parenthesized_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr)" ( (field_expression "(((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr" (parenthesized_expression "(((link_info.output_bfd)->tdata).elf_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).elf_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) != number_literal) || (binary_expression "(int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0" (cast_expression "(int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" ( (type_descriptor "int" primitive_type) ) (field_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" (parenthesized_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr)" ( (field_expression "(((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr" (parenthesized_expression "(((link_info.output_bfd)->tdata).elf_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).elf_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier)) != number_literal)) )) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));\n    }" { (expression_statement "fwrite(" BASE=0x",1,8,__stream);" (call_expression "fwrite(" BASE=0x",1,8,__stream)" identifier (argument_list "(" BASE=0x",1,8,__stream)" ( (string_literal "" BASE=0x"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));" (call_expression "fprintf(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4))" identifier (argument_list "(__stream,"%016llx",\n              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,\n              *(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4))" ( identifier , (string_literal ""%016llx"" " string_content ") , (cast_expression "(int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" ( (type_descriptor "int" primitive_type) ) (field_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" (parenthesized_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr)" ( (field_expression "(((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr" (parenthesized_expression "(((link_info.output_bfd)->tdata).elf_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).elf_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier)) , (pointer_expression "*(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" * (cast_expression "(undefined4 *)\n               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" ( (binary_expression "(int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4" (cast_expression "(int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" & (field_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" (parenthesized_expression "((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr)" ( (field_expression "(((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr" (parenthesized_expression "(((link_info.output_bfd)->tdata).elf_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).elf_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) ))) ;) })) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (pe_def_file->description != (char *)0x0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    quoteput(pe_def_file->description,(FILE *)__stream,1);\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(pe_def_file->description != (char *)0x0)" ( (binary_expression "pe_def_file->description != (char *)0x0" (field_expression "pe_def_file->description" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    quoteput(pe_def_file->description,(FILE *)__stream,1);\n    fputc(10,__stream);\n  }" { (expression_statement "fwrite("DESCRIPTION ",1,0xc,__stream);" (call_expression "fwrite("DESCRIPTION ",1,0xc,__stream)" identifier (argument_list "("DESCRIPTION ",1,0xc,__stream)" ( (string_literal ""DESCRIPTION "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pe_def_file->description,(FILE *)__stream,1);" (call_expression "quoteput(pe_def_file->description,(FILE *)__stream,1)" identifier (argument_list "(pe_def_file->description,(FILE *)__stream,1)" ( (field_expression "pe_def_file->description" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (pe_def_file->version_minor == -1) {\n    if (pe_def_file->version_major != -1) {\n      pcVar6 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar6 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar6,pe_def_file->version_major);\n  }" if (parenthesized_expression "(pe_def_file->version_minor == -1)" ( (binary_expression "pe_def_file->version_minor == -1" (field_expression "pe_def_file->version_minor" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    if (pe_def_file->version_major != -1) {\n      pcVar6 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }" { (if_statement "if (pe_def_file->version_major != -1) {\n      pcVar6 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" if (parenthesized_expression "(pe_def_file->version_major != -1)" ( (binary_expression "pe_def_file->version_major != -1" (field_expression "pe_def_file->version_major" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      pcVar6 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" { (expression_statement "pcVar6 = "VERSION %d\n";" (assignment_expression "pcVar6 = "VERSION %d\n"" identifier = (string_literal ""VERSION %d\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000640a9;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar6 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar6,pe_def_file->version_major);\n  }" else (compound_statement "{\n    pcVar6 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar6,pe_def_file->version_major);\n  }" { (expression_statement "pcVar6 = "VERSION %d.%d\n";" (assignment_expression "pcVar6 = "VERSION %d.%d\n"" identifier = (string_literal ""VERSION %d.%d\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000640a9:\n    fprintf(__stream,pcVar6,pe_def_file->version_major);" statement_identifier : (expression_statement "fprintf(__stream,pcVar6,pe_def_file->version_major);" (call_expression "fprintf(__stream,pcVar6,pe_def_file->version_major)" identifier (argument_list "(__stream,pcVar6,pe_def_file->version_major)" ( identifier , identifier , (field_expression "pe_def_file->version_major" identifier -> field_identifier) ))) ;)) }))) (if_statement "if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    iVar3 = -1;\n    if (pe_def_file->stack_commit != -1) {\nLAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);\n      iVar3 = pe_def_file->heap_reserve;\n      goto LAB_00064109;\n    }\n    if (pe_def_file->heap_commit != -1) {\n      iVar3 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (pe_def_file->stack_commit != -1) {\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }\n    iVar3 = pe_def_file->stack_reserve;\n    if (iVar3 != -1) {\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar3 = pe_def_file->heap_reserve;\nLAB_00064109:\n    if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar6,iVar3);\n  }" if (parenthesized_expression "((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1))" ( (binary_expression "(pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)" (parenthesized_expression "(pe_def_file->stack_reserve == -1)" ( (binary_expression "pe_def_file->stack_reserve == -1" (field_expression "pe_def_file->stack_reserve" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(pe_def_file->heap_reserve == -1)" ( (binary_expression "pe_def_file->heap_reserve == -1" (field_expression "pe_def_file->heap_reserve" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n    iVar3 = -1;\n    if (pe_def_file->stack_commit != -1) {\nLAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);\n      iVar3 = pe_def_file->heap_reserve;\n      goto LAB_00064109;\n    }\n    if (pe_def_file->heap_commit != -1) {\n      iVar3 = -1;\n      goto LAB_00064115;\n    }\n  }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (if_statement "if (pe_def_file->stack_commit != -1) {\nLAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);\n      iVar3 = pe_def_file->heap_reserve;\n      goto LAB_00064109;\n    }" if (parenthesized_expression "(pe_def_file->stack_commit != -1)" ( (binary_expression "pe_def_file->stack_commit != -1" (field_expression "pe_def_file->stack_commit" identifier -> field_identifier) != number_literal) )) (compound_statement "{\nLAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);\n      iVar3 = pe_def_file->heap_reserve;\n      goto LAB_00064109;\n    }" { (labeled_statement "LAB_000640ee:\n      pcVar6 = "STACKSIZE 0x%x,0x%x\n";" statement_identifier : (expression_statement "pcVar6 = "STACKSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar6 = "STACKSIZE 0x%x,0x%x\n"" identifier = (string_literal ""STACKSIZE 0x%x,0x%x\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_000640f6:\n      fprintf(__stream,pcVar6,iVar3);" statement_identifier : (expression_statement "fprintf(__stream,pcVar6,iVar3);" (call_expression "fprintf(__stream,pcVar6,iVar3)" identifier (argument_list "(__stream,pcVar6,iVar3)" ( identifier , identifier , identifier ))) ;)) (expression_statement "iVar3 = pe_def_file->heap_reserve;" (assignment_expression "iVar3 = pe_def_file->heap_reserve" identifier = (field_expression "pe_def_file->heap_reserve" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00064109;" goto statement_identifier ;) })) (if_statement "if (pe_def_file->heap_commit != -1) {\n      iVar3 = -1;\n      goto LAB_00064115;\n    }" if (parenthesized_expression "(pe_def_file->heap_commit != -1)" ( (binary_expression "pe_def_file->heap_commit != -1" (field_expression "pe_def_file->heap_commit" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      iVar3 = -1;\n      goto LAB_00064115;\n    }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00064115;" goto statement_identifier ;) })) }) (else_clause "else {\n    fputc(10,__stream);\n    if (pe_def_file->stack_commit != -1) {\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }\n    iVar3 = pe_def_file->stack_reserve;\n    if (iVar3 != -1) {\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar3 = pe_def_file->heap_reserve;\nLAB_00064109:\n    if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar6,iVar3);\n  }" else (compound_statement "{\n    fputc(10,__stream);\n    if (pe_def_file->stack_commit != -1) {\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }\n    iVar3 = pe_def_file->stack_reserve;\n    if (iVar3 != -1) {\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar3 = pe_def_file->heap_reserve;\nLAB_00064109:\n    if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar6,iVar3);\n  }" { (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (pe_def_file->stack_commit != -1) {\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }" if (parenthesized_expression "(pe_def_file->stack_commit != -1)" ( (binary_expression "pe_def_file->stack_commit != -1" (field_expression "pe_def_file->stack_commit" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      iVar3 = pe_def_file->stack_reserve;\n      goto LAB_000640ee;\n    }" { (expression_statement "iVar3 = pe_def_file->stack_reserve;" (assignment_expression "iVar3 = pe_def_file->stack_reserve" identifier = (field_expression "pe_def_file->stack_reserve" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000640ee;" goto statement_identifier ;) })) (expression_statement "iVar3 = pe_def_file->stack_reserve;" (assignment_expression "iVar3 = pe_def_file->stack_reserve" identifier = (field_expression "pe_def_file->stack_reserve" identifier -> field_identifier)) ;) (if_statement "if (iVar3 != -1) {\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n      pcVar6 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" { (expression_statement "pcVar6 = "STACKSIZE 0x%x\n";" (assignment_expression "pcVar6 = "STACKSIZE 0x%x\n"" identifier = (string_literal ""STACKSIZE 0x%x\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000640f6;" goto statement_identifier ;) })) (expression_statement "iVar3 = pe_def_file->heap_reserve;" (assignment_expression "iVar3 = pe_def_file->heap_reserve" identifier = (field_expression "pe_def_file->heap_reserve" identifier -> field_identifier)) ;) (labeled_statement "LAB_00064109:\n    if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }" statement_identifier : (if_statement "if (pe_def_file->heap_commit == -1) {\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }" if (parenthesized_expression "(pe_def_file->heap_commit == -1)" ( (binary_expression "pe_def_file->heap_commit == -1" (field_expression "pe_def_file->heap_commit" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      if (iVar3 == -1) goto LAB_0006412d;\n      pcVar6 = "HEAPSIZE 0x%x\n";\n    }" { (if_statement "if (iVar3 == -1) goto LAB_0006412d;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006412d;" goto statement_identifier ;)) (expression_statement "pcVar6 = "HEAPSIZE 0x%x\n";" (assignment_expression "pcVar6 = "HEAPSIZE 0x%x\n"" identifier = (string_literal ""HEAPSIZE 0x%x\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }" else (compound_statement "{\nLAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";\n    }" { (labeled_statement "LAB_00064115:\n      pcVar6 = "HEAPSIZE 0x%x,0x%x\n";" statement_identifier : (expression_statement "pcVar6 = "HEAPSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar6 = "HEAPSIZE 0x%x,0x%x\n"" identifier = (string_literal ""HEAPSIZE 0x%x,0x%x\n"" " string_content escape_sequence ")) ;)) })))) (expression_statement "fprintf(__stream,pcVar6,iVar3);" (call_expression "fprintf(__stream,pcVar6,iVar3)" identifier (argument_list "(__stream,pcVar6,iVar3)" ( identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_0006412d:\n  if ((0 < pe_def_file->num_section_defs) &&\n     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    iVar3 = 0;\n    do {\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_section_defs);\n  }" statement_identifier : (if_statement "if ((0 < pe_def_file->num_section_defs) &&\n     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    iVar3 = 0;\n    do {\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_section_defs);\n  }" if (parenthesized_expression "((0 < pe_def_file->num_section_defs) &&\n     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs))" ( (binary_expression "(0 < pe_def_file->num_section_defs) &&\n     (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)" (parenthesized_expression "(0 < pe_def_file->num_section_defs)" ( (binary_expression "0 < pe_def_file->num_section_defs" number_literal < (field_expression "pe_def_file->num_section_defs" identifier -> field_identifier)) )) && (parenthesized_expression "(fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)" ( (comma_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs" (call_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream)" identifier (argument_list "("\nSECTIONS\n\n",1,0xb,__stream)" ( (string_literal ""\nSECTIONS\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < pe_def_file->num_section_defs" number_literal < (field_expression "pe_def_file->num_section_defs" identifier -> field_identifier))) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_section_defs);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_section_defs);" do (compound_statement "{\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);\n      pdVar4 = pe_def_file->section_defs + iVar3;\n      if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }\n      if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "fwrite(&DAT_0007af9a,1,4,__stream);" (call_expression "fwrite(&DAT_0007af9a,1,4,__stream)" identifier (argument_list "(&DAT_0007af9a,1,4,__stream)" ( (pointer_expression "&DAT_0007af9a" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0);" (call_expression "quoteput(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0)" identifier (argument_list "(pe_def_file->section_defs[iVar3].name,(FILE *)__stream,0)" ( (field_expression "pe_def_file->section_defs[iVar3].name" (subscript_expression "pe_def_file->section_defs[iVar3]" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) [ identifier ]) . field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "pdVar4 = pe_def_file->section_defs + iVar3;" (assignment_expression "pdVar4 = pe_def_file->section_defs + iVar3" identifier = (binary_expression "pe_def_file->section_defs + iVar3" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) (if_statement "if (pdVar4->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }" if (parenthesized_expression "(pdVar4->class != (char *)0x0)" ( (binary_expression "pdVar4->class != (char *)0x0" (field_expression "pdVar4->class" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n      }" { (expression_statement "fwrite(" CLASS ",1,7,__stream);" (call_expression "fwrite(" CLASS ",1,7,__stream)" identifier (argument_list "(" CLASS ",1,7,__stream)" ( (string_literal "" CLASS "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0);" (call_expression "quoteput(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0)" identifier (argument_list "(pe_def_file->section_defs[iVar3].class,(FILE *)__stream,0)" ( (field_expression "pe_def_file->section_defs[iVar3].class" (subscript_expression "pe_def_file->section_defs[iVar3]" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) [ identifier ]) . field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "pdVar4 = pe_def_file->section_defs + iVar3;" (assignment_expression "pdVar4 = pe_def_file->section_defs + iVar3" identifier = (binary_expression "pe_def_file->section_defs + iVar3" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) })) (if_statement "if (pdVar4->flag_read == '\0') {\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }" if (parenthesized_expression "(pdVar4->flag_read == '\0')" ( (binary_expression "pdVar4->flag_read == '\0'" (field_expression "pdVar4->flag_read" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (pdVar4->flag_write == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar2 = pdVar4->flag_shared;\n      }" { (if_statement "if (pdVar4->flag_write == '\0') goto LAB_000643ba;" if (parenthesized_expression "(pdVar4->flag_write == '\0')" ( (binary_expression "pdVar4->flag_write == '\0'" (field_expression "pdVar4->flag_write" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000643ba;" goto statement_identifier ;)) (labeled_statement "LAB_00064498:\n        fwrite(" WRITE",1,6,__stream);" statement_identifier : (expression_statement "fwrite(" WRITE",1,6,__stream);" (call_expression "fwrite(" WRITE",1,6,__stream)" identifier (argument_list "(" WRITE",1,6,__stream)" ( (string_literal "" WRITE"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "pdVar4 = pe_def_file->section_defs + iVar3;" (assignment_expression "pdVar4 = pe_def_file->section_defs + iVar3" identifier = (binary_expression "pe_def_file->section_defs + iVar3" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) (if_statement "if (pdVar4->flag_execute != '\0') goto LAB_000644c3;" if (parenthesized_expression "(pdVar4->flag_execute != '\0')" ( (binary_expression "pdVar4->flag_execute != '\0'" (field_expression "pdVar4->flag_execute" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000644c3;" goto statement_identifier ;)) (labeled_statement "LAB_000643c4:\n        cVar2 = pdVar4->flag_shared;" statement_identifier : (expression_statement "cVar2 = pdVar4->flag_shared;" (assignment_expression "cVar2 = pdVar4->flag_shared" identifier = (field_expression "pdVar4->flag_shared" identifier -> field_identifier)) ;)) }) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }" else (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        pdVar4 = pe_def_file->section_defs + iVar3;\n        if (pdVar4->flag_write != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar2 = pe_def_file->section_defs[iVar3].flag_shared;\n      }" { (expression_statement "fwrite(" READ",1,5,__stream);" (call_expression "fwrite(" READ",1,5,__stream)" identifier (argument_list "(" READ",1,5,__stream)" ( (string_literal "" READ"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "pdVar4 = pe_def_file->section_defs + iVar3;" (assignment_expression "pdVar4 = pe_def_file->section_defs + iVar3" identifier = (binary_expression "pe_def_file->section_defs + iVar3" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) (if_statement "if (pdVar4->flag_write != '\0') goto LAB_00064498;" if (parenthesized_expression "(pdVar4->flag_write != '\0')" ( (binary_expression "pdVar4->flag_write != '\0'" (field_expression "pdVar4->flag_write" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00064498;" goto statement_identifier ;)) (labeled_statement "LAB_000643ba:\n        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;" statement_identifier : (if_statement "if (pdVar4->flag_execute == '\0') goto LAB_000643c4;" if (parenthesized_expression "(pdVar4->flag_execute == '\0')" ( (binary_expression "pdVar4->flag_execute == '\0'" (field_expression "pdVar4->flag_execute" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000643c4;" goto statement_identifier ;))) (labeled_statement "LAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);" statement_identifier : (expression_statement "fwrite(" EXECUTE",1,8,__stream);" (call_expression "fwrite(" EXECUTE",1,8,__stream)" identifier (argument_list "(" EXECUTE",1,8,__stream)" ( (string_literal "" EXECUTE"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "cVar2 = pe_def_file->section_defs[iVar3].flag_shared;" (assignment_expression "cVar2 = pe_def_file->section_defs[iVar3].flag_shared" identifier = (field_expression "pe_def_file->section_defs[iVar3].flag_shared" (subscript_expression "pe_def_file->section_defs[iVar3]" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) }))) (if_statement "if (cVar2 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        fwrite(" SHARED",1,7,__stream);\n      }" { (expression_statement "fwrite(" SHARED",1,7,__stream);" (call_expression "fwrite(" SHARED",1,7,__stream)" identifier (argument_list "(" SHARED",1,7,__stream)" ( (string_literal "" SHARED"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar3 < pe_def_file->num_section_defs)" ( (binary_expression "iVar3 < pe_def_file->num_section_defs" identifier < (field_expression "pe_def_file->num_section_defs" identifier -> field_identifier)) )) ;) }))) (if_statement "if ((0 < pe_def_file->num_exports) &&\n     (fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports)) {\n    iVar3 = 0;\n    do {\n      pdVar7 = pe_def_file->exports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pdVar7->name,(FILE *)__stream,0);\n      if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }\n      if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_exports);\n  }" if (parenthesized_expression "((0 < pe_def_file->num_exports) &&\n     (fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports))" ( (binary_expression "(0 < pe_def_file->num_exports) &&\n     (fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports)" (parenthesized_expression "(0 < pe_def_file->num_exports)" ( (binary_expression "0 < pe_def_file->num_exports" number_literal < (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) )) && (parenthesized_expression "(fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports)" ( (comma_expression "fwrite("EXPORTS\n",1,8,__stream), 0 < pe_def_file->num_exports" (call_expression "fwrite("EXPORTS\n",1,8,__stream)" identifier (argument_list "("EXPORTS\n",1,8,__stream)" ( (string_literal ""EXPORTS\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < pe_def_file->num_exports" number_literal < (field_expression "pe_def_file->num_exports" identifier -> field_identifier))) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      pdVar7 = pe_def_file->exports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pdVar7->name,(FILE *)__stream,0);\n      if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }\n      if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_exports);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      pdVar7 = pe_def_file->exports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pdVar7->name,(FILE *)__stream,0);\n      if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }\n      if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_exports);" do (compound_statement "{\n      pdVar7 = pe_def_file->exports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      quoteput(pdVar7->name,(FILE *)__stream,0);\n      if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }\n      if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }\n      if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "pdVar7 = pe_def_file->exports + iVar3;" (assignment_expression "pdVar7 = pe_def_file->exports + iVar3" identifier = (binary_expression "pe_def_file->exports + iVar3" (field_expression "pe_def_file->exports" identifier -> field_identifier) + identifier)) ;) (expression_statement "fwrite(&DAT_0007af9a,1,4,__stream);" (call_expression "fwrite(&DAT_0007af9a,1,4,__stream)" identifier (argument_list "(&DAT_0007af9a,1,4,__stream)" ( (pointer_expression "&DAT_0007af9a" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pdVar7->name,(FILE *)__stream,0);" (call_expression "quoteput(pdVar7->name,(FILE *)__stream,0)" identifier (argument_list "(pdVar7->name,(FILE *)__stream,0)" ( (field_expression "pdVar7->name" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (if_statement "if ((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }" if (parenthesized_expression "((pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0))" ( (binary_expression "(pdVar7->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)" (parenthesized_expression "(pdVar7->internal_name != (char *)0x0)" ( (binary_expression "pdVar7->internal_name != (char *)0x0" (field_expression "pdVar7->internal_name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(pdVar7->internal_name,pdVar7->name), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pdVar7->internal_name,pdVar7->name)" identifier = (call_expression "strcmp(pdVar7->internal_name,pdVar7->name)" identifier (argument_list "(pdVar7->internal_name,pdVar7->name)" ( (field_expression "pdVar7->internal_name" identifier -> field_identifier) , (field_expression "pdVar7->name" identifier -> field_identifier) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        quoteput(pdVar7->internal_name,(FILE *)__stream,0);\n      }" { (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" identifier (argument_list "(&DAT_0006c0d1,1,3,__stream)" ( (pointer_expression "&DAT_0006c0d1" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pdVar7->internal_name,(FILE *)__stream,0);" (call_expression "quoteput(pdVar7->internal_name,(FILE *)__stream,0)" identifier (argument_list "(pdVar7->internal_name,(FILE *)__stream,0)" ( (field_expression "pdVar7->internal_name" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) })) (if_statement "if (pdVar7->ordinal != -1) {\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }" if (parenthesized_expression "(pdVar7->ordinal != -1)" ( (binary_expression "pdVar7->ordinal != -1" (field_expression "pdVar7->ordinal" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        fprintf(__stream," @%d",pdVar7->ordinal);\n      }" { (expression_statement "fprintf(__stream," @%d",pdVar7->ordinal);" (call_expression "fprintf(__stream," @%d",pdVar7->ordinal)" identifier (argument_list "(__stream," @%d",pdVar7->ordinal)" ( identifier , (string_literal "" @%d"" " string_content ") , (field_expression "pdVar7->ordinal" identifier -> field_identifier) ))) ;) })) (if_statement "if (pdVar7->flag_private == '\0') {\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }" if (parenthesized_expression "(pdVar7->flag_private == '\0')" ( (binary_expression "pdVar7->flag_private == '\0'" (field_expression "pdVar7->flag_private" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar2 = pdVar7->flag_data;\n      }" { (if_statement "if (pdVar7->flag_constant == '\0') goto LAB_0006422a;" if (parenthesized_expression "(pdVar7->flag_constant == '\0')" ( (binary_expression "pdVar7->flag_constant == '\0'" (field_expression "pdVar7->flag_constant" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0006422a;" goto statement_identifier ;)) (labeled_statement "LAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);" statement_identifier : (expression_statement "fwrite(" CONSTANT",1,9,__stream);" (call_expression "fwrite(" CONSTANT",1,9,__stream)" identifier (argument_list "(" CONSTANT",1,9,__stream)" ( (string_literal "" CONSTANT"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (if_statement "if (pdVar7->flag_noname != '\0') goto LAB_000642fc;" if (parenthesized_expression "(pdVar7->flag_noname != '\0')" ( (binary_expression "pdVar7->flag_noname != '\0'" (field_expression "pdVar7->flag_noname" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000642fc;" goto statement_identifier ;)) (labeled_statement "LAB_00064234:\n        cVar2 = pdVar7->flag_data;" statement_identifier : (expression_statement "cVar2 = pdVar7->flag_data;" (assignment_expression "cVar2 = pdVar7->flag_data" identifier = (field_expression "pdVar7->flag_data" identifier -> field_identifier)) ;)) }) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }" else (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar7->flag_constant != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar2 = pdVar7->flag_data;\n      }" { (expression_statement "fwrite(" PRIVATE",1,8,__stream);" (call_expression "fwrite(" PRIVATE",1,8,__stream)" identifier (argument_list "(" PRIVATE",1,8,__stream)" ( (string_literal "" PRIVATE"" " string_content ") , number_literal , number_literal , identifier ))) ;) (if_statement "if (pdVar7->flag_constant != '\0') goto LAB_000642de;" if (parenthesized_expression "(pdVar7->flag_constant != '\0')" ( (binary_expression "pdVar7->flag_constant != '\0'" (field_expression "pdVar7->flag_constant" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000642de;" goto statement_identifier ;)) (labeled_statement "LAB_0006422a:\n        if (pdVar7->flag_noname == '\0') goto LAB_00064234;" statement_identifier : (if_statement "if (pdVar7->flag_noname == '\0') goto LAB_00064234;" if (parenthesized_expression "(pdVar7->flag_noname == '\0')" ( (binary_expression "pdVar7->flag_noname == '\0'" (field_expression "pdVar7->flag_noname" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00064234;" goto statement_identifier ;))) (labeled_statement "LAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);" statement_identifier : (expression_statement "fwrite(" NONAME",1,7,__stream);" (call_expression "fwrite(" NONAME",1,7,__stream)" identifier (argument_list "(" NONAME",1,7,__stream)" ( (string_literal "" NONAME"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "cVar2 = pdVar7->flag_data;" (assignment_expression "cVar2 = pdVar7->flag_data" identifier = (field_expression "pdVar7->flag_data" identifier -> field_identifier)) ;) }))) (if_statement "if (cVar2 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        fwrite(" DATA",1,5,__stream);\n      }" { (expression_statement "fwrite(" DATA",1,5,__stream);" (call_expression "fwrite(" DATA",1,5,__stream)" identifier (argument_list "(" DATA",1,5,__stream)" ( (string_literal "" DATA"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar3 < pe_def_file->num_exports)" ( (binary_expression "iVar3 < pe_def_file->num_exports" identifier < (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) )) ;) })) (if_statement "if ((0 < pe_def_file->num_imports) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports)) {\n    iVar3 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      pcVar6 = pdVar1->internal_name;\n      if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      quoteput(pdVar1->module->name,(FILE *)__stream,0);\n      fputc(0x2e,__stream);\n      if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_imports);\n  }" if (parenthesized_expression "((0 < pe_def_file->num_imports) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports))" ( (binary_expression "(0 < pe_def_file->num_imports) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports)" (parenthesized_expression "(0 < pe_def_file->num_imports)" ( (binary_expression "0 < pe_def_file->num_imports" number_literal < (field_expression "pe_def_file->num_imports" identifier -> field_identifier)) )) && (parenthesized_expression "(fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports)" ( (comma_expression "fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < pe_def_file->num_imports" (call_expression "fwrite("\nIMPORTS\n\n",1,10,__stream)" identifier (argument_list "("\nIMPORTS\n\n",1,10,__stream)" ( (string_literal ""\nIMPORTS\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < pe_def_file->num_imports" number_literal < (field_expression "pe_def_file->num_imports" identifier -> field_identifier))) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      pcVar6 = pdVar1->internal_name;\n      if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      quoteput(pdVar1->module->name,(FILE *)__stream,0);\n      fputc(0x2e,__stream);\n      if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_imports);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      pdVar1 = pe_def_file->imports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      pcVar6 = pdVar1->internal_name;\n      if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      quoteput(pdVar1->module->name,(FILE *)__stream,0);\n      fputc(0x2e,__stream);\n      if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    } while (iVar3 < pe_def_file->num_imports);" do (compound_statement "{\n      pdVar1 = pe_def_file->imports + iVar3;\n      fwrite(&DAT_0007af9a,1,4,__stream);\n      pcVar6 = pdVar1->internal_name;\n      if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      quoteput(pdVar1->module->name,(FILE *)__stream,0);\n      fputc(0x2e,__stream);\n      if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      iVar3 = iVar3 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "pdVar1 = pe_def_file->imports + iVar3;" (assignment_expression "pdVar1 = pe_def_file->imports + iVar3" identifier = (binary_expression "pe_def_file->imports + iVar3" (field_expression "pe_def_file->imports" identifier -> field_identifier) + identifier)) ;) (expression_statement "fwrite(&DAT_0007af9a,1,4,__stream);" (call_expression "fwrite(&DAT_0007af9a,1,4,__stream)" identifier (argument_list "(&DAT_0007af9a,1,4,__stream)" ( (pointer_expression "&DAT_0007af9a" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar6 = pdVar1->internal_name;" (assignment_expression "pcVar6 = pdVar1->internal_name" identifier = (field_expression "pdVar1->internal_name" identifier -> field_identifier)) ;) (if_statement "if ((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" if (parenthesized_expression "((pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0))))" ( (binary_expression "(pcVar6 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))" (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)))" ( (parenthesized_expression "(pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0))" ( (binary_expression "pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)" (binary_expression "pdVar1->name == (char *)0x0" (field_expression "pdVar1->name" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(pcVar6,pdVar1->name), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pcVar6,pdVar1->name)" identifier = (call_expression "strcmp(pcVar6,pdVar1->name)" identifier (argument_list "(pcVar6,pdVar1->name)" ( identifier , (field_expression "pdVar1->name" identifier -> field_identifier) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n        quoteput(pcVar6,(FILE *)__stream,0);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" { (expression_statement "quoteput(pcVar6,(FILE *)__stream,0);" (call_expression "quoteput(pcVar6,(FILE *)__stream,0)" identifier (argument_list "(pcVar6,(FILE *)__stream,0)" ( identifier , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" identifier (argument_list "(&DAT_0006c0d1,1,3,__stream)" ( (pointer_expression "&DAT_0006c0d1" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "quoteput(pdVar1->module->name,(FILE *)__stream,0);" (call_expression "quoteput(pdVar1->module->name,(FILE *)__stream,0)" identifier (argument_list "(pdVar1->module->name,(FILE *)__stream,0)" ( (field_expression "pdVar1->module->name" (field_expression "pdVar1->module" identifier -> field_identifier) -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "fputc(0x2e,__stream);" (call_expression "fputc(0x2e,__stream)" identifier (argument_list "(0x2e,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (pdVar1->name == (char *)0x0) {\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }" if (parenthesized_expression "(pdVar1->name == (char *)0x0)" ( (binary_expression "pdVar1->name == (char *)0x0" (field_expression "pdVar1->name" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        fprintf(__stream,"%d",pdVar1->ordinal);\n      }" { (expression_statement "fprintf(__stream,"%d",pdVar1->ordinal);" (call_expression "fprintf(__stream,"%d",pdVar1->ordinal)" identifier (argument_list "(__stream,"%d",pdVar1->ordinal)" ( identifier , (string_literal ""%d"" " string_content ") , (field_expression "pdVar1->ordinal" identifier -> field_identifier) ))) ;) }) (else_clause "else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }" else (compound_statement "{\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }" { (expression_statement "quoteput(pdVar1->name,(FILE *)__stream,0);" (call_expression "quoteput(pdVar1->name,(FILE *)__stream,0)" identifier (argument_list "(pdVar1->name,(FILE *)__stream,0)" ( (field_expression "pdVar1->name" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) }))) (if_statement "if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }" if (parenthesized_expression "(pdVar1->its_name != (char *)0x0)" ( (binary_expression "pdVar1->its_name != (char *)0x0" (field_expression "pdVar1->its_name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }" { (expression_statement "fwrite(&DAT_001acd9c,1,4,__stream);" (call_expression "fwrite(&DAT_001acd9c,1,4,__stream)" identifier (argument_list "(&DAT_001acd9c,1,4,__stream)" ( (pointer_expression "&DAT_001acd9c" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pdVar1->its_name,(FILE *)__stream,0);" (call_expression "quoteput(pdVar1->its_name,(FILE *)__stream,0)" identifier (argument_list "(pdVar1->its_name,(FILE *)__stream,0)" ( (field_expression "pdVar1->its_name" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar3 < pe_def_file->num_imports)" ( (binary_expression "iVar3 < pe_def_file->num_imports" identifier < (field_expression "pe_def_file->num_imports" identifier -> field_identifier)) )) ;) })) (labeled_statement "LAB_0006414e:\n  iVar3 = fclose(__stream);" statement_identifier : (expression_statement "iVar3 = fclose(__stream);" (assignment_expression "iVar3 = fclose(__stream)" identifier = (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (if_statement "if (iVar3 != -1) {\n    return;\n  }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar6 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%P: error closing file `%s\'\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: error closing file `%s\'\n",5)" identifier (argument_list "(0,"%P: error closing file `%s\'\n",5)" ( number_literal , (string_literal ""%P: error closing file `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar6,pe_out_def_filename);" (call_expression "einfo(pcVar6,pe_out_def_filename)" identifier (argument_list "(pcVar6,pe_out_def_filename)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00063fa0(char *param_1)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}\n\n" (function_definition "void FUN_00063fa0(char *param_1)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00063fa0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (expression_statement "__stream = fopen64(param_1,"w");" (assignment_expression "__stream = fopen64(param_1,"w")" identifier = (call_expression "fopen64(param_1,"w")" identifier (argument_list "(param_1,"w")" ( identifier , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }" if (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }" { (expression_statement "uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5)" identifier = (call_expression "dcgettext(0,"%P: can\'t open output def file %s\n",5)" identifier (argument_list "(0,"%P: can\'t open output def file %s\n",5)" ( number_literal , (string_literal ""%P: can\'t open output def file %s\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar4,param_1);" (call_expression "FUN_00034d20(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }" if (parenthesized_expression "(DAT_001d0218 == (int *)0x0)" ( (binary_expression "DAT_001d0218 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"; no contents available\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"; no contents available\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"; no contents available\n",5)" identifier (argument_list "(0,"; no contents available\n",5)" ( number_literal , (string_literal ""; no contents available\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar5);" (call_expression "fprintf(__stream,pcVar5)" identifier (argument_list "(__stream,pcVar5)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0006414e;" goto statement_identifier ;) })) (if_statement "if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(*DAT_001d0218 != 0)" ( (binary_expression "*DAT_001d0218 != 0" (pointer_expression "*DAT_001d0218" * identifier) != number_literal) )) (compound_statement "{\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }" { (if_statement "if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" if (parenthesized_expression "(DAT_001d0218[1] == 0)" ( (binary_expression "DAT_001d0218[1] == 0" (subscript_expression "DAT_001d0218[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("NAME ",1,5,__stream);\n    }" { (expression_statement "fwrite("NAME ",1,5,__stream);" (call_expression "fwrite("NAME ",1,5,__stream)" identifier (argument_list "("NAME ",1,5,__stream)" ( (string_literal ""NAME "" " string_content ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" else (compound_statement "{\n      fwrite("LIBRARY ",1,8,__stream);\n    }" { (expression_statement "fwrite("LIBRARY ",1,8,__stream);" (call_expression "fwrite("LIBRARY ",1,8,__stream)" identifier (argument_list "("LIBRARY ",1,8,__stream)" ( (string_literal ""LIBRARY "" " string_content ") , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }" if (parenthesized_expression "(*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0)" ( (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0" (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0" (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa8" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) != number_literal) || (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0" (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa4" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) != number_literal)) )) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }" { (expression_statement "fwrite(" BASE=0x",1,8,__stream);" (call_expression "fwrite(" BASE=0x",1,8,__stream)" identifier (argument_list "(" BASE=0x",1,8,__stream)" ( (string_literal "" BASE=0x"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));" (call_expression "fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8))" identifier (argument_list "(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8))" ( identifier , (string_literal ""%016llx"" " string_content ") , (pointer_expression "*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa4" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" * (cast_expression "(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa8" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) )))) ))) ;) })) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(DAT_001d0218[4] != 0)" ( (binary_expression "DAT_001d0218[4] != 0" (subscript_expression "DAT_001d0218[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }" { (expression_statement "fwrite("DESCRIPTION ",1,0xc,__stream);" (call_expression "fwrite("DESCRIPTION ",1,0xc,__stream)" identifier (argument_list "("DESCRIPTION ",1,0xc,__stream)" ( (string_literal ""DESCRIPTION "" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" if (parenthesized_expression "(DAT_001d0218[0x11] == -1)" ( (binary_expression "DAT_001d0218[0x11] == -1" (subscript_expression "DAT_001d0218[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }" { (if_statement "if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" if (parenthesized_expression "(DAT_001d0218[0x10] != -1)" ( (binary_expression "DAT_001d0218[0x10] != -1" (subscript_expression "DAT_001d0218[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" { (expression_statement "pcVar5 = "VERSION %d\n";" (assignment_expression "pcVar5 = "VERSION %d\n"" identifier = (string_literal ""VERSION %d\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000640a9;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" else (compound_statement "{\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" { (expression_statement "pcVar5 = "VERSION %d.%d\n";" (assignment_expression "pcVar5 = "VERSION %d.%d\n"" identifier = (string_literal ""VERSION %d.%d\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);" statement_identifier : (expression_statement "fprintf(__stream,pcVar5,DAT_001d0218[0x10]);" (call_expression "fprintf(__stream,pcVar5,DAT_001d0218[0x10])" identifier (argument_list "(__stream,pcVar5,DAT_001d0218[0x10])" ( identifier , identifier , (subscript_expression "DAT_001d0218[0x10]" identifier [ number_literal ]) ))) ;)) }))) (if_statement "if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" if (parenthesized_expression "((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1))" ( (binary_expression "(DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)" (parenthesized_expression "(DAT_001d0218[5] == -1)" ( (binary_expression "DAT_001d0218[5] == -1" (subscript_expression "DAT_001d0218[5]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(DAT_001d0218[7] == -1)" ( (binary_expression "DAT_001d0218[7] == -1" (subscript_expression "DAT_001d0218[7]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }" if (parenthesized_expression "(DAT_001d0218[6] != -1)" ( (binary_expression "DAT_001d0218[6] != -1" (subscript_expression "DAT_001d0218[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }" { (labeled_statement "LAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";" statement_identifier : (expression_statement "pcVar5 = "STACKSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar5 = "STACKSIZE 0x%x,0x%x\n"" identifier = (string_literal ""STACKSIZE 0x%x,0x%x\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);" statement_identifier : (expression_statement "fprintf(__stream,pcVar5,iVar2);" (call_expression "fprintf(__stream,pcVar5,iVar2)" identifier (argument_list "(__stream,pcVar5,iVar2)" ( identifier , identifier , identifier ))) ;)) (expression_statement "iVar2 = DAT_001d0218[7];" (assignment_expression "iVar2 = DAT_001d0218[7]" identifier = (subscript_expression "DAT_001d0218[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00064109;" goto statement_identifier ;) })) (if_statement "if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }" if (parenthesized_expression "(DAT_001d0218[8] != -1)" ( (binary_expression "DAT_001d0218[8] != -1" (subscript_expression "DAT_001d0218[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar2 = -1;\n      goto LAB_00064115;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00064115;" goto statement_identifier ;) })) }) (else_clause "else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" else (compound_statement "{\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" { (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }" if (parenthesized_expression "(DAT_001d0218[6] != -1)" ( (binary_expression "DAT_001d0218[6] != -1" (subscript_expression "DAT_001d0218[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }" { (expression_statement "iVar2 = DAT_001d0218[5];" (assignment_expression "iVar2 = DAT_001d0218[5]" identifier = (subscript_expression "DAT_001d0218[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000640ee;" goto statement_identifier ;) })) (expression_statement "iVar2 = DAT_001d0218[5];" (assignment_expression "iVar2 = DAT_001d0218[5]" identifier = (subscript_expression "DAT_001d0218[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" { (expression_statement "pcVar5 = "STACKSIZE 0x%x\n";" (assignment_expression "pcVar5 = "STACKSIZE 0x%x\n"" identifier = (string_literal ""STACKSIZE 0x%x\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000640f6;" goto statement_identifier ;) })) (expression_statement "iVar2 = DAT_001d0218[7];" (assignment_expression "iVar2 = DAT_001d0218[7]" identifier = (subscript_expression "DAT_001d0218[7]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" statement_identifier : (if_statement "if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" if (parenthesized_expression "(DAT_001d0218[8] == -1)" ( (binary_expression "DAT_001d0218[8] == -1" (subscript_expression "DAT_001d0218[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }" { (if_statement "if (iVar2 == -1) goto LAB_0006412d;" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006412d;" goto statement_identifier ;)) (expression_statement "pcVar5 = "HEAPSIZE 0x%x\n";" (assignment_expression "pcVar5 = "HEAPSIZE 0x%x\n"" identifier = (string_literal ""HEAPSIZE 0x%x\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" else (compound_statement "{\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" { (labeled_statement "LAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";" statement_identifier : (expression_statement "pcVar5 = "HEAPSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar5 = "HEAPSIZE 0x%x,0x%x\n"" identifier = (string_literal ""HEAPSIZE 0x%x,0x%x\n"" " string_content escape_sequence ")) ;)) })))) (expression_statement "fprintf(__stream,pcVar5,iVar2);" (call_expression "fprintf(__stream,pcVar5,iVar2)" identifier (argument_list "(__stream,pcVar5,iVar2)" ( identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" statement_identifier : (if_statement "if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" if (parenthesized_expression "((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9]))" ( (binary_expression "(0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])" (parenthesized_expression "(0 < DAT_001d0218[9])" ( (binary_expression "0 < DAT_001d0218[9]" number_literal < (subscript_expression "DAT_001d0218[9]" identifier [ number_literal ])) )) && (parenthesized_expression "(fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])" ( (comma_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9]" (call_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream)" identifier (argument_list "("\nSECTIONS\n\n",1,0xb,__stream)" ( (string_literal ""\nSECTIONS\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < DAT_001d0218[9]" number_literal < (subscript_expression "DAT_001d0218[9]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" { (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" identifier = (pointer_expression "&DAT_0007af9a" & identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = " CLASS ";" (assignment_expression "pcVar5 = " CLASS "" identifier = (string_literal "" CLASS "" " string_content ")) ;) (do_statement "do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);" do (compound_statement "{\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" identifier (argument_list "(puVar8,1,4,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "iVar3 = iVar2 * 0xc;" (assignment_expression "iVar3 = iVar2 * 0xc" identifier = (binary_expression "iVar2 * 0xc" identifier * number_literal)) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }" { (expression_statement "fwrite(pcVar5,1,7,__stream);" (call_expression "fwrite(pcVar5,1,7,__stream)" identifier (argument_list "(pcVar5,1,7,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) })) (if_statement "if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 8) == '\0')" ( (binary_expression "*(char *)(iVar6 + 8) == '\0'" (pointer_expression "*(char *)(iVar6 + 8)" * (cast_expression "(char *)(iVar6 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }" { (if_statement "if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;" if (parenthesized_expression "(*(char *)(iVar6 + 9) == '\0')" ( (binary_expression "*(char *)(iVar6 + 9) == '\0'" (pointer_expression "*(char *)(iVar6 + 9)" * (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000643ba;" goto statement_identifier ;)) (labeled_statement "LAB_00064498:\n        fwrite(" WRITE",1,6,__stream);" statement_identifier : (expression_statement "fwrite(" WRITE",1,6,__stream);" (call_expression "fwrite(" WRITE",1,6,__stream)" identifier (argument_list "(" WRITE",1,6,__stream)" ( (string_literal "" WRITE"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;" if (parenthesized_expression "(*(char *)(iVar6 + 10) != '\0')" ( (binary_expression "*(char *)(iVar6 + 10) != '\0'" (pointer_expression "*(char *)(iVar6 + 10)" * (cast_expression "(char *)(iVar6 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 10)" ( (binary_expression "iVar6 + 10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000644c3;" goto statement_identifier ;)) (labeled_statement "LAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);" statement_identifier : (expression_statement "cVar1 = *(char *)(iVar6 + 0xb);" (assignment_expression "cVar1 = *(char *)(iVar6 + 0xb)" identifier = (pointer_expression "*(char *)(iVar6 + 0xb)" * (cast_expression "(char *)(iVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xb)" ( (binary_expression "iVar6 + 0xb" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" else (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" { (expression_statement "fwrite(" READ",1,5,__stream);" (call_expression "fwrite(" READ",1,5,__stream)" identifier (argument_list "(" READ",1,5,__stream)" ( (string_literal "" READ"" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" identifier = (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;" if (parenthesized_expression "(*(char *)(iVar6 + 9) != '\0')" ( (binary_expression "*(char *)(iVar6 + 9) != '\0'" (pointer_expression "*(char *)(iVar6 + 9)" * (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00064498;" goto statement_identifier ;)) (labeled_statement "LAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;" statement_identifier : (if_statement "if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;" if (parenthesized_expression "(*(char *)(iVar6 + 10) == '\0')" ( (binary_expression "*(char *)(iVar6 + 10) == '\0'" (pointer_expression "*(char *)(iVar6 + 10)" * (cast_expression "(char *)(iVar6 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 10)" ( (binary_expression "iVar6 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000643c4;" goto statement_identifier ;))) (labeled_statement "LAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);" statement_identifier : (expression_statement "fwrite(" EXECUTE",1,8,__stream);" (call_expression "fwrite(" EXECUTE",1,8,__stream)" identifier (argument_list "(" EXECUTE",1,8,__stream)" ( (string_literal "" EXECUTE"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);" (assignment_expression "cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb)" identifier = (pointer_expression "*(char *)(iVar3 + DAT_001d0218[10] + 0xb)" * (cast_expression "(char *)(iVar3 + DAT_001d0218[10] + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + DAT_001d0218[10] + 0xb)" ( (binary_expression "iVar3 + DAT_001d0218[10] + 0xb" (binary_expression "iVar3 + DAT_001d0218[10]" identifier + (subscript_expression "DAT_001d0218[10]" identifier [ number_literal ])) + number_literal) ))))) ;) }))) (if_statement "if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        fwrite(" SHARED",1,7,__stream);\n      }" { (expression_statement "fwrite(" SHARED",1,7,__stream);" (call_expression "fwrite(" SHARED",1,7,__stream)" identifier (argument_list "(" SHARED",1,7,__stream)" ( (string_literal "" SHARED"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar2 < DAT_001d0218[9])" ( (binary_expression "iVar2 < DAT_001d0218[9]" identifier < (subscript_expression "DAT_001d0218[9]" identifier [ number_literal ])) )) ;) }))) (if_statement "if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }" if (parenthesized_expression "((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb]))" ( (binary_expression "(0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])" (parenthesized_expression "(0 < DAT_001d0218[0xb])" ( (binary_expression "0 < DAT_001d0218[0xb]" number_literal < (subscript_expression "DAT_001d0218[0xb]" identifier [ number_literal ])) )) && (parenthesized_expression "(fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])" ( (comma_expression "fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb]" (call_expression "fwrite("EXPORTS\n",1,8,__stream)" identifier (argument_list "("EXPORTS\n",1,8,__stream)" ( (string_literal ""EXPORTS\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < DAT_001d0218[0xb]" number_literal < (subscript_expression "DAT_001d0218[0xb]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }" { (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" identifier = (pointer_expression "&DAT_0007af9a" & identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = " @%d";" (assignment_expression "pcVar5 = " @%d"" identifier = (string_literal "" @%d"" " string_content ")) ;) (do_statement "do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);" do (compound_statement "{\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);" (assignment_expression "puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc])" identifier = (cast_expression "(undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 * 0x1c + DAT_001d0218[0xc])" ( (binary_expression "iVar2 * 0x1c + DAT_001d0218[0xc]" (binary_expression "iVar2 * 0x1c" identifier * number_literal) + (subscript_expression "DAT_001d0218[0xc]" identifier [ number_literal ])) )))) ;) (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" identifier (argument_list "(puVar8,1,4,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }" if (parenthesized_expression "(((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0))" ( (binary_expression "((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)" (parenthesized_expression "((char *)puVar7[1] != (char *)0x0)" ( (binary_expression "(char *)puVar7[1] != (char *)0x0" (cast_expression "(char *)puVar7[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7)" identifier = (call_expression "strcmp((char *)puVar7[1],(char *)*puVar7)" identifier (argument_list "((char *)puVar7[1],(char *)*puVar7)" ( (cast_expression "(char *)puVar7[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) , (cast_expression "(char *)*puVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }" { (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" identifier (argument_list "(&DAT_0006c0d1,1,3,__stream)" ( (pointer_expression "&DAT_0006c0d1" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }" if (parenthesized_expression "(puVar7[3] != -1)" ( (binary_expression "puVar7[3] != -1" (subscript_expression "puVar7[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }" { (expression_statement "fprintf(__stream,pcVar5,puVar7[3]);" (call_expression "fprintf(__stream,pcVar5,puVar7[3])" identifier (argument_list "(__stream,pcVar5,puVar7[3])" ( identifier , identifier , (subscript_expression "puVar7[3]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" if (parenthesized_expression "(*(char *)(puVar7 + 5) == '\0')" ( (binary_expression "*(char *)(puVar7 + 5) == '\0'" (pointer_expression "*(char *)(puVar7 + 5)" * (cast_expression "(char *)(puVar7 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" { (if_statement "if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x15) == '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x15) == '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x15)" * (cast_expression "(char *)((int)puVar7 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x15)" ( (binary_expression "(int)puVar7 + 0x15" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0006422a;" goto statement_identifier ;)) (labeled_statement "LAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);" statement_identifier : (expression_statement "fwrite(" CONSTANT",1,9,__stream);" (call_expression "fwrite(" CONSTANT",1,9,__stream)" identifier (argument_list "(" CONSTANT",1,9,__stream)" ( (string_literal "" CONSTANT"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (if_statement "if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x16) != '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x16) != '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x16)" * (cast_expression "(char *)((int)puVar7 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x16)" ( (binary_expression "(int)puVar7 + 0x16" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000642fc;" goto statement_identifier ;)) (labeled_statement "LAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);" statement_identifier : (expression_statement "cVar1 = *(char *)((int)puVar7 + 0x17);" (assignment_expression "cVar1 = *(char *)((int)puVar7 + 0x17)" identifier = (pointer_expression "*(char *)((int)puVar7 + 0x17)" * (cast_expression "(char *)((int)puVar7 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x17)" ( (binary_expression "(int)puVar7 + 0x17" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" else (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" { (expression_statement "fwrite(" PRIVATE",1,8,__stream);" (call_expression "fwrite(" PRIVATE",1,8,__stream)" identifier (argument_list "(" PRIVATE",1,8,__stream)" ( (string_literal "" PRIVATE"" " string_content ") , number_literal , number_literal , identifier ))) ;) (if_statement "if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x15) != '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x15) != '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x15)" * (cast_expression "(char *)((int)puVar7 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x15)" ( (binary_expression "(int)puVar7 + 0x15" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000642de;" goto statement_identifier ;)) (labeled_statement "LAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;" statement_identifier : (if_statement "if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;" if (parenthesized_expression "(*(char *)((int)puVar7 + 0x16) == '\0')" ( (binary_expression "*(char *)((int)puVar7 + 0x16) == '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x16)" * (cast_expression "(char *)((int)puVar7 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x16)" ( (binary_expression "(int)puVar7 + 0x16" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00064234;" goto statement_identifier ;))) (labeled_statement "LAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);" statement_identifier : (expression_statement "fwrite(" NONAME",1,7,__stream);" (call_expression "fwrite(" NONAME",1,7,__stream)" identifier (argument_list "(" NONAME",1,7,__stream)" ( (string_literal "" NONAME"" " string_content ") , number_literal , number_literal , identifier ))) ;)) (expression_statement "cVar1 = *(char *)((int)puVar7 + 0x17);" (assignment_expression "cVar1 = *(char *)((int)puVar7 + 0x17)" identifier = (pointer_expression "*(char *)((int)puVar7 + 0x17)" * (cast_expression "(char *)((int)puVar7 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x17)" ( (binary_expression "(int)puVar7 + 0x17" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        fwrite(" DATA",1,5,__stream);\n      }" { (expression_statement "fwrite(" DATA",1,5,__stream);" (call_expression "fwrite(" DATA",1,5,__stream)" identifier (argument_list "(" DATA",1,5,__stream)" ( (string_literal "" DATA"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar2 < DAT_001d0218[0xb])" ( (binary_expression "iVar2 < DAT_001d0218[0xb]" identifier < (subscript_expression "DAT_001d0218[0xb]" identifier [ number_literal ])) )) ;) })) (if_statement "if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }" if (parenthesized_expression "((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe]))" ( (binary_expression "(0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])" (parenthesized_expression "(0 < DAT_001d0218[0xe])" ( (binary_expression "0 < DAT_001d0218[0xe]" number_literal < (subscript_expression "DAT_001d0218[0xe]" identifier [ number_literal ])) )) && (parenthesized_expression "(fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])" ( (comma_expression "fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe]" (call_expression "fwrite("\nIMPORTS\n\n",1,10,__stream)" identifier (argument_list "("\nIMPORTS\n\n",1,10,__stream)" ( (string_literal ""\nIMPORTS\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal , number_literal , identifier ))) , (binary_expression "0 < DAT_001d0218[0xe]" number_literal < (subscript_expression "DAT_001d0218[0xe]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }" { (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" identifier = (pointer_expression "&DAT_0007af9a" & identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);" do (compound_statement "{\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);" (assignment_expression "puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18)" identifier = (cast_expression "(undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0218[0xf] + iVar2 * 0x18)" ( (binary_expression "DAT_001d0218[0xf] + iVar2 * 0x18" (subscript_expression "DAT_001d0218[0xf]" identifier [ number_literal ]) + (binary_expression "iVar2 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" identifier (argument_list "(puVar8,1,4,__stream)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar5 = (char *)*puVar7;" (assignment_expression "pcVar5 = (char *)*puVar7" identifier = (cast_expression "(char *)*puVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" if (parenthesized_expression "((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0))))" ( (binary_expression "(pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))" ( (parenthesized_expression "((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0))" ( (binary_expression "(char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)" (binary_expression "(char *)puVar7[2] == (char *)0x0" (cast_expression "(char *)puVar7[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar5,(char *)puVar7[2])" identifier = (call_expression "strcmp(pcVar5,(char *)puVar7[2])" identifier (argument_list "(pcVar5,(char *)puVar7[2])" ( identifier , (cast_expression "(char *)puVar7[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" { (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" identifier (argument_list "(puVar8,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" identifier (argument_list "(&DAT_0006c0d1,1,3,__stream)" ( (pointer_expression "&DAT_0006c0d1" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" identifier (argument_list "(puVar8,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "fputc(0x2e,__stream);" (call_expression "fputc(0x2e,__stream)" identifier (argument_list "(0x2e,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }" if (parenthesized_expression "(puVar7[2] == 0)" ( (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        fprintf(__stream,"%d",puVar7[4]);\n      }" { (expression_statement "fprintf(__stream,"%d",puVar7[4]);" (call_expression "fprintf(__stream,"%d",puVar7[4])" identifier (argument_list "(__stream,"%d",puVar7[4])" ( identifier , (string_literal ""%d"" " string_content ") , (subscript_expression "puVar7[4]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n        FUN_000625f0(puVar8,pcVar5);\n      }" else (compound_statement "{\n        FUN_000625f0(puVar8,pcVar5);\n      }" { (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" identifier (argument_list "(puVar8,pcVar5)" ( identifier , identifier ))) ;) }))) (if_statement "if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }" if (parenthesized_expression "(puVar7[3] != 0)" ( (binary_expression "puVar7[3] != 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }" { (expression_statement "fwrite(&DAT_001acd9c,1,4,__stream);" (call_expression "fwrite(&DAT_001acd9c,1,4,__stream)" identifier (argument_list "(&DAT_001acd9c,1,4,__stream)" ( (pointer_expression "&DAT_001acd9c" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar2 < DAT_001d0218[0xe])" ( (binary_expression "iVar2 < DAT_001d0218[0xe]" identifier < (subscript_expression "DAT_001d0218[0xe]" identifier [ number_literal ])) )) ;) })) (labeled_statement "LAB_0006414e:\n  iVar2 = fclose(__stream);" statement_identifier : (expression_statement "iVar2 = fclose(__stream);" (assignment_expression "iVar2 = fclose(__stream)" identifier = (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (if_statement "if (iVar2 != -1) {\n    return;\n  }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5)" identifier = (call_expression "dcgettext(0,"%P: error closing file `%s\'\n",5)" identifier (argument_list "(0,"%P: error closing file `%s\'\n",5)" ( number_literal , (string_literal ""%P: error closing file `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar4,param_1);" (call_expression "FUN_00034d20(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (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) || (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)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;)) }))) (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 (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , LIT , LIT , IDENT ))) , (binary_expression LIT < (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) , (binary_expression LIT < (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (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 ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , LIT , LIT , IDENT ))) , (binary_expression LIT < (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00063fa0(char *param_1)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00063fa0(char *param_1)" (identifier "FUN_00063fa0") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  \n  __stream = fopen64(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }\n  if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }\n  if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }\n  if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }\n  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }\nLAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }\n  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }\n  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }\nLAB_0006414e:\n  iVar2 = fclose(__stream);\n  if (iVar2 != -1) {\n    return;\n  }\n  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00034d20(uVar4,param_1);\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (expression_statement "__stream = fopen64(param_1,"w");" (assignment_expression "__stream = fopen64(param_1,"w")" (identifier "__stream") (= "=") (call_expression "fopen64(param_1,"w")" (identifier "fopen64") (argument_list "(param_1,"w")" (( "(") (identifier "param_1") (, ",") (string_literal ""w"" (" """) (string_content "w") (" """)) () ")")))) (; ";")) (if_statement "if (__stream == (FILE *)0x0) {\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }" (if "if") (parenthesized_expression "(__stream == (FILE *)0x0)" (( "(") (binary_expression "__stream == (FILE *)0x0" (identifier "__stream") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00034d20(uVar4,param_1);\n  }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"%P: can\'t open output def file %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: can\'t open output def file %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: can\'t open output def file %s\n"" (" """) (string_content "%P: can") (escape_sequence "\'") (string_content "t open output def file %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar4,param_1);" (call_expression "FUN_00034d20(uVar4,param_1)" (identifier "FUN_00034d20") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_001d0218 == (int *)0x0) {\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }" (if "if") (parenthesized_expression "(DAT_001d0218 == (int *)0x0)" (( "(") (binary_expression "DAT_001d0218 == (int *)0x0" (identifier "DAT_001d0218") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar5);\n    goto LAB_0006414e;\n  }" ({ "{") (expression_statement "pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"; no contents available\n",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"; no contents available\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"; no contents available\n",5)" (identifier "dcgettext") (argument_list "(0,"; no contents available\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""; no contents available\n"" (" """) (string_content "; no contents available") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar5);" (call_expression "fprintf(__stream,pcVar5)" (identifier "fprintf") (argument_list "(__stream,pcVar5)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (goto_statement "goto LAB_0006414e;" (goto "goto") (statement_identifier "LAB_0006414e") (; ";")) (} "}"))) (if_statement "if (*DAT_001d0218 != 0) {\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }" (if "if") (parenthesized_expression "(*DAT_001d0218 != 0)" (( "(") (binary_expression "*DAT_001d0218 != 0" (pointer_expression "*DAT_001d0218" (* "*") (identifier "DAT_001d0218")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_000625f0();\n    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }\n    fputc(10,__stream);\n  }" ({ "{") (if_statement "if (DAT_001d0218[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" (if "if") (parenthesized_expression "(DAT_001d0218[1] == 0)" (( "(") (binary_expression "DAT_001d0218[1] == 0" (subscript_expression "DAT_001d0218[1]" (identifier "DAT_001d0218") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("NAME ",1,5,__stream);\n    }" ({ "{") (expression_statement "fwrite("NAME ",1,5,__stream);" (call_expression "fwrite("NAME ",1,5,__stream)" (identifier "fwrite") (argument_list "("NAME ",1,5,__stream)" (( "(") (string_literal ""NAME "" (" """) (string_content "NAME ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" (else "else") (compound_statement "{\n      fwrite("LIBRARY ",1,8,__stream);\n    }" ({ "{") (expression_statement "fwrite("LIBRARY ",1,8,__stream);" (call_expression "fwrite("LIBRARY ",1,8,__stream)" (identifier "fwrite") (argument_list "("LIBRARY ",1,8,__stream)" (( "(") (string_literal ""LIBRARY "" (" """) (string_content "LIBRARY ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" (identifier "FUN_000625f0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||\n        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0" (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0" (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" (* "*") (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" (( "(") (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa8" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0xa8")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0" (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" (( "(") (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa4" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0xa4")) () ")")))) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));\n    }" ({ "{") (expression_statement "fwrite(" BASE=0x",1,8,__stream);" (call_expression "fwrite(" BASE=0x",1,8,__stream)" (identifier "fwrite") (argument_list "(" BASE=0x",1,8,__stream)" (( "(") (string_literal "" BASE=0x"" (" """) (string_content " BASE=0x") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));" (call_expression "fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8))" (identifier "fprintf") (argument_list "(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),\n              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8))" (( "(") (identifier "__stream") (, ",") (string_literal ""%016llx"" (" """) (string_content "%016llx") (" """)) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa4)" (( "(") (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa4" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0xa4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0xa8)" (( "(") (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0xa8" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0xa8")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_001d0218[4] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }" (if "if") (parenthesized_expression "(DAT_001d0218[4] != 0)" (( "(") (binary_expression "DAT_001d0218[4] != 0" (subscript_expression "DAT_001d0218[4]" (identifier "DAT_001d0218") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_000625f0();\n    fputc(10,__stream);\n  }" ({ "{") (expression_statement "fwrite("DESCRIPTION ",1,0xc,__stream);" (call_expression "fwrite("DESCRIPTION ",1,0xc,__stream)" (identifier "fwrite") (argument_list "("DESCRIPTION ",1,0xc,__stream)" (( "(") (string_literal ""DESCRIPTION "" (" """) (string_content "DESCRIPTION ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xc") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" (identifier "FUN_000625f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_001d0218[0x11] == -1) {\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }\n  else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" (if "if") (parenthesized_expression "(DAT_001d0218[0x11] == -1)" (( "(") (binary_expression "DAT_001d0218[0x11] == -1" (subscript_expression "DAT_001d0218[0x11]" (identifier "DAT_001d0218") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }\n  }" ({ "{") (if_statement "if (DAT_001d0218[0x10] != -1) {\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" (if "if") (parenthesized_expression "(DAT_001d0218[0x10] != -1)" (( "(") (binary_expression "DAT_001d0218[0x10] != -1" (subscript_expression "DAT_001d0218[0x10]" (identifier "DAT_001d0218") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      pcVar5 = "VERSION %d\n";\n      goto LAB_000640a9;\n    }" ({ "{") (expression_statement "pcVar5 = "VERSION %d\n";" (assignment_expression "pcVar5 = "VERSION %d\n"" (identifier "pcVar5") (= "=") (string_literal ""VERSION %d\n"" (" """) (string_content "VERSION %d") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_000640a9;" (goto "goto") (statement_identifier "LAB_000640a9") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" (else "else") (compound_statement "{\n    pcVar5 = "VERSION %d.%d\n";\nLAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);\n  }" ({ "{") (expression_statement "pcVar5 = "VERSION %d.%d\n";" (assignment_expression "pcVar5 = "VERSION %d.%d\n"" (identifier "pcVar5") (= "=") (string_literal ""VERSION %d.%d\n"" (" """) (string_content "VERSION %d.%d") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_000640a9:\n    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);" (statement_identifier "LAB_000640a9") (: ":") (expression_statement "fprintf(__stream,pcVar5,DAT_001d0218[0x10]);" (call_expression "fprintf(__stream,pcVar5,DAT_001d0218[0x10])" (identifier "fprintf") (argument_list "(__stream,pcVar5,DAT_001d0218[0x10])" (( "(") (identifier "__stream") (, ",") (identifier "pcVar5") (, ",") (subscript_expression "DAT_001d0218[0x10]" (identifier "DAT_001d0218") ([ "[") (number_literal "0x10") (] "]")) () ")"))) (; ";"))) (} "}")))) (if_statement "if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }\n  else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" (if "if") (parenthesized_expression "((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1))" (( "(") (binary_expression "(DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)" (parenthesized_expression "(DAT_001d0218[5] == -1)" (( "(") (binary_expression "DAT_001d0218[5] == -1" (subscript_expression "DAT_001d0218[5]" (identifier "DAT_001d0218") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(DAT_001d0218[7] == -1)" (( "(") (binary_expression "DAT_001d0218[7] == -1" (subscript_expression "DAT_001d0218[7]" (identifier "DAT_001d0218") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    iVar2 = -1;\n    if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }\n    if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }\n  }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (DAT_001d0218[6] != -1) {\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }" (if "if") (parenthesized_expression "(DAT_001d0218[6] != -1)" (( "(") (binary_expression "DAT_001d0218[6] != -1" (subscript_expression "DAT_001d0218[6]" (identifier "DAT_001d0218") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\nLAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";\nLAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);\n      iVar2 = DAT_001d0218[7];\n      goto LAB_00064109;\n    }" ({ "{") (labeled_statement "LAB_000640ee:\n      pcVar5 = "STACKSIZE 0x%x,0x%x\n";" (statement_identifier "LAB_000640ee") (: ":") (expression_statement "pcVar5 = "STACKSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar5 = "STACKSIZE 0x%x,0x%x\n"" (identifier "pcVar5") (= "=") (string_literal ""STACKSIZE 0x%x,0x%x\n"" (" """) (string_content "STACKSIZE 0x%x,0x%x") (escape_sequence "\n") (" """))) (; ";"))) (labeled_statement "LAB_000640f6:\n      fprintf(__stream,pcVar5,iVar2);" (statement_identifier "LAB_000640f6") (: ":") (expression_statement "fprintf(__stream,pcVar5,iVar2);" (call_expression "fprintf(__stream,pcVar5,iVar2)" (identifier "fprintf") (argument_list "(__stream,pcVar5,iVar2)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar5") (, ",") (identifier "iVar2") () ")"))) (; ";"))) (expression_statement "iVar2 = DAT_001d0218[7];" (assignment_expression "iVar2 = DAT_001d0218[7]" (identifier "iVar2") (= "=") (subscript_expression "DAT_001d0218[7]" (identifier "DAT_001d0218") ([ "[") (number_literal "7") (] "]"))) (; ";")) (goto_statement "goto LAB_00064109;" (goto "goto") (statement_identifier "LAB_00064109") (; ";")) (} "}"))) (if_statement "if (DAT_001d0218[8] != -1) {\n      iVar2 = -1;\n      goto LAB_00064115;\n    }" (if "if") (parenthesized_expression "(DAT_001d0218[8] != -1)" (( "(") (binary_expression "DAT_001d0218[8] != -1" (subscript_expression "DAT_001d0218[8]" (identifier "DAT_001d0218") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar2 = -1;\n      goto LAB_00064115;\n    }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00064115;" (goto "goto") (statement_identifier "LAB_00064115") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" (else "else") (compound_statement "{\n    fputc(10,__stream);\n    if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }\n    iVar2 = DAT_001d0218[5];\n    if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }\n    iVar2 = DAT_001d0218[7];\nLAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }\n    fprintf(__stream,pcVar5,iVar2);\n  }" ({ "{") (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (if_statement "if (DAT_001d0218[6] != -1) {\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }" (if "if") (parenthesized_expression "(DAT_001d0218[6] != -1)" (( "(") (binary_expression "DAT_001d0218[6] != -1" (subscript_expression "DAT_001d0218[6]" (identifier "DAT_001d0218") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar2 = DAT_001d0218[5];\n      goto LAB_000640ee;\n    }" ({ "{") (expression_statement "iVar2 = DAT_001d0218[5];" (assignment_expression "iVar2 = DAT_001d0218[5]" (identifier "iVar2") (= "=") (subscript_expression "DAT_001d0218[5]" (identifier "DAT_001d0218") ([ "[") (number_literal "5") (] "]"))) (; ";")) (goto_statement "goto LAB_000640ee;" (goto "goto") (statement_identifier "LAB_000640ee") (; ";")) (} "}"))) (expression_statement "iVar2 = DAT_001d0218[5];" (assignment_expression "iVar2 = DAT_001d0218[5]" (identifier "iVar2") (= "=") (subscript_expression "DAT_001d0218[5]" (identifier "DAT_001d0218") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (iVar2 != -1) {\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" (if "if") (parenthesized_expression "(iVar2 != -1)" (( "(") (binary_expression "iVar2 != -1" (identifier "iVar2") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      pcVar5 = "STACKSIZE 0x%x\n";\n      goto LAB_000640f6;\n    }" ({ "{") (expression_statement "pcVar5 = "STACKSIZE 0x%x\n";" (assignment_expression "pcVar5 = "STACKSIZE 0x%x\n"" (identifier "pcVar5") (= "=") (string_literal ""STACKSIZE 0x%x\n"" (" """) (string_content "STACKSIZE 0x%x") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_000640f6;" (goto "goto") (statement_identifier "LAB_000640f6") (; ";")) (} "}"))) (expression_statement "iVar2 = DAT_001d0218[7];" (assignment_expression "iVar2 = DAT_001d0218[7]" (identifier "iVar2") (= "=") (subscript_expression "DAT_001d0218[7]" (identifier "DAT_001d0218") ([ "[") (number_literal "7") (] "]"))) (; ";")) (labeled_statement "LAB_00064109:\n    if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" (statement_identifier "LAB_00064109") (: ":") (if_statement "if (DAT_001d0218[8] == -1) {\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }\n    else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" (if "if") (parenthesized_expression "(DAT_001d0218[8] == -1)" (( "(") (binary_expression "DAT_001d0218[8] == -1" (subscript_expression "DAT_001d0218[8]" (identifier "DAT_001d0218") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      if (iVar2 == -1) goto LAB_0006412d;\n      pcVar5 = "HEAPSIZE 0x%x\n";\n    }" ({ "{") (if_statement "if (iVar2 == -1) goto LAB_0006412d;" (if "if") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0006412d;" (goto "goto") (statement_identifier "LAB_0006412d") (; ";"))) (expression_statement "pcVar5 = "HEAPSIZE 0x%x\n";" (assignment_expression "pcVar5 = "HEAPSIZE 0x%x\n"" (identifier "pcVar5") (= "=") (string_literal ""HEAPSIZE 0x%x\n"" (" """) (string_content "HEAPSIZE 0x%x") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" (else "else") (compound_statement "{\nLAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";\n    }" ({ "{") (labeled_statement "LAB_00064115:\n      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";" (statement_identifier "LAB_00064115") (: ":") (expression_statement "pcVar5 = "HEAPSIZE 0x%x,0x%x\n";" (assignment_expression "pcVar5 = "HEAPSIZE 0x%x,0x%x\n"" (identifier "pcVar5") (= "=") (string_literal ""HEAPSIZE 0x%x,0x%x\n"" (" """) (string_content "HEAPSIZE 0x%x,0x%x") (escape_sequence "\n") (" """))) (; ";"))) (} "}"))))) (expression_statement "fprintf(__stream,pcVar5,iVar2);" (call_expression "fprintf(__stream,pcVar5,iVar2)" (identifier "fprintf") (argument_list "(__stream,pcVar5,iVar2)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar5") (, ",") (identifier "iVar2") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0006412d:\n  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" (statement_identifier "LAB_0006412d") (: ":") (if_statement "if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" (if "if") (parenthesized_expression "((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9]))" (( "(") (binary_expression "(0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])" (parenthesized_expression "(0 < DAT_001d0218[9])" (( "(") (binary_expression "0 < DAT_001d0218[9]" (number_literal "0") (< "<") (subscript_expression "DAT_001d0218[9]" (identifier "DAT_001d0218") ([ "[") (number_literal "9") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])" (( "(") (comma_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9]" (call_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream)" (identifier "fwrite") (argument_list "("\nSECTIONS\n\n",1,0xb,__stream)" (( "(") (string_literal ""\nSECTIONS\n\n"" (" """) (escape_sequence "\n") (string_content "SECTIONS") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xb") (, ",") (identifier "__stream") () ")"))) (, ",") (binary_expression "0 < DAT_001d0218[9]" (number_literal "0") (< "<") (subscript_expression "DAT_001d0218[9]" (identifier "DAT_001d0218") ([ "[") (number_literal "9") (] "]")))) () ")"))) () ")")) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " CLASS ";\n    do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);\n  }" ({ "{") (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" (identifier "puVar8") (= "=") (pointer_expression "&DAT_0007af9a" (& "&") (identifier "DAT_0007af9a"))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = " CLASS ";" (assignment_expression "pcVar5 = " CLASS "" (identifier "pcVar5") (= "=") (string_literal "" CLASS "" (" """) (string_content " CLASS ") (" """))) (; ";")) (do_statement "do {\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[9]);" (do "do") (compound_statement "{\n      fwrite(puVar8,1,4,__stream);\n      iVar3 = iVar2 * 0xc;\n      FUN_000625f0();\n      iVar6 = DAT_001d0218[10] + iVar3;\n      if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }\n      if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" ({ "{") (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" (identifier "fwrite") (argument_list "(puVar8,1,4,__stream)" (( "(") (identifier "puVar8") (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "iVar3 = iVar2 * 0xc;" (assignment_expression "iVar3 = iVar2 * 0xc" (identifier "iVar3") (= "=") (binary_expression "iVar2 * 0xc" (identifier "iVar2") (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" (identifier "FUN_000625f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" (identifier "iVar6") (= "=") (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" (identifier "DAT_001d0218") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        fwrite(pcVar5,1,7,__stream);\n        FUN_000625f0();\n        iVar6 = DAT_001d0218[10] + iVar3;\n      }" ({ "{") (expression_statement "fwrite(pcVar5,1,7,__stream);" (call_expression "fwrite(pcVar5,1,7,__stream)" (identifier "fwrite") (argument_list "(pcVar5,1,7,__stream)" (( "(") (identifier "pcVar5") (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" (identifier "FUN_000625f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" (identifier "iVar6") (= "=") (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" (identifier "DAT_001d0218") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar3"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar6 + 8) == '\0') {\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 8) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 8) == '\0'" (pointer_expression "*(char *)(iVar6 + 8)" (* "*") (cast_expression "(char *)(iVar6 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;\nLAB_00064498:\n        fwrite(" WRITE",1,6,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;\nLAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);\n      }" ({ "{") (if_statement "if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 9) == '\0'" (pointer_expression "*(char *)(iVar6 + 9)" (* "*") (cast_expression "(char *)(iVar6 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 9)" (( "(") (binary_expression "iVar6 + 9" (identifier "iVar6") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000643ba;" (goto "goto") (statement_identifier "LAB_000643ba") (; ";"))) (labeled_statement "LAB_00064498:\n        fwrite(" WRITE",1,6,__stream);" (statement_identifier "LAB_00064498") (: ":") (expression_statement "fwrite(" WRITE",1,6,__stream);" (call_expression "fwrite(" WRITE",1,6,__stream)" (identifier "fwrite") (argument_list "(" WRITE",1,6,__stream)" (( "(") (string_literal "" WRITE"" (" """) (string_content " WRITE") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "__stream") () ")"))) (; ";"))) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" (identifier "iVar6") (= "=") (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" (identifier "DAT_001d0218") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 10) != '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 10) != '\0'" (pointer_expression "*(char *)(iVar6 + 10)" (* "*") (cast_expression "(char *)(iVar6 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 10)" (( "(") (binary_expression "iVar6 + 10" (identifier "iVar6") (+ "+") (number_literal "10")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000644c3;" (goto "goto") (statement_identifier "LAB_000644c3") (; ";"))) (labeled_statement "LAB_000643c4:\n        cVar1 = *(char *)(iVar6 + 0xb);" (statement_identifier "LAB_000643c4") (: ":") (expression_statement "cVar1 = *(char *)(iVar6 + 0xb);" (assignment_expression "cVar1 = *(char *)(iVar6 + 0xb)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar6 + 0xb)" (* "*") (cast_expression "(char *)(iVar6 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xb)" (( "(") (binary_expression "iVar6 + 0xb" (identifier "iVar6") (+ "+") (number_literal "0xb")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" (else "else") (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        iVar6 = DAT_001d0218[10] + iVar3;\n        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;\nLAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;\nLAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);\n      }" ({ "{") (expression_statement "fwrite(" READ",1,5,__stream);" (call_expression "fwrite(" READ",1,5,__stream)" (identifier "fwrite") (argument_list "(" READ",1,5,__stream)" (( "(") (string_literal "" READ"" (" """) (string_content " READ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "iVar6 = DAT_001d0218[10] + iVar3;" (assignment_expression "iVar6 = DAT_001d0218[10] + iVar3" (identifier "iVar6") (= "=") (binary_expression "DAT_001d0218[10] + iVar3" (subscript_expression "DAT_001d0218[10]" (identifier "DAT_001d0218") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 9) != '\0'" (pointer_expression "*(char *)(iVar6 + 9)" (* "*") (cast_expression "(char *)(iVar6 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 9)" (( "(") (binary_expression "iVar6 + 9" (identifier "iVar6") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00064498;" (goto "goto") (statement_identifier "LAB_00064498") (; ";"))) (labeled_statement "LAB_000643ba:\n        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;" (statement_identifier "LAB_000643ba") (: ":") (if_statement "if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 10) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 10) == '\0'" (pointer_expression "*(char *)(iVar6 + 10)" (* "*") (cast_expression "(char *)(iVar6 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 10)" (( "(") (binary_expression "iVar6 + 10" (identifier "iVar6") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000643c4;" (goto "goto") (statement_identifier "LAB_000643c4") (; ";")))) (labeled_statement "LAB_000644c3:\n        fwrite(" EXECUTE",1,8,__stream);" (statement_identifier "LAB_000644c3") (: ":") (expression_statement "fwrite(" EXECUTE",1,8,__stream);" (call_expression "fwrite(" EXECUTE",1,8,__stream)" (identifier "fwrite") (argument_list "(" EXECUTE",1,8,__stream)" (( "(") (string_literal "" EXECUTE"" (" """) (string_content " EXECUTE") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "__stream") () ")"))) (; ";"))) (expression_statement "cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);" (assignment_expression "cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar3 + DAT_001d0218[10] + 0xb)" (* "*") (cast_expression "(char *)(iVar3 + DAT_001d0218[10] + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + DAT_001d0218[10] + 0xb)" (( "(") (binary_expression "iVar3 + DAT_001d0218[10] + 0xb" (binary_expression "iVar3 + DAT_001d0218[10]" (identifier "iVar3") (+ "+") (subscript_expression "DAT_001d0218[10]" (identifier "DAT_001d0218") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "0xb")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (cVar1 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        fwrite(" SHARED",1,7,__stream);\n      }" ({ "{") (expression_statement "fwrite(" SHARED",1,7,__stream);" (call_expression "fwrite(" SHARED",1,7,__stream)" (identifier "fwrite") (argument_list "(" SHARED",1,7,__stream)" (( "(") (string_literal "" SHARED"" (" """) (string_content " SHARED") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 < DAT_001d0218[9])" (( "(") (binary_expression "iVar2 < DAT_001d0218[9]" (identifier "iVar2") (< "<") (subscript_expression "DAT_001d0218[9]" (identifier "DAT_001d0218") ([ "[") (number_literal "9") (] "]"))) () ")")) (; ";")) (} "}")))) (if_statement "if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }" (if "if") (parenthesized_expression "((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb]))" (( "(") (binary_expression "(0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])" (parenthesized_expression "(0 < DAT_001d0218[0xb])" (( "(") (binary_expression "0 < DAT_001d0218[0xb]" (number_literal "0") (< "<") (subscript_expression "DAT_001d0218[0xb]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xb") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])" (( "(") (comma_expression "fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb]" (call_expression "fwrite("EXPORTS\n",1,8,__stream)" (identifier "fwrite") (argument_list "("EXPORTS\n",1,8,__stream)" (( "(") (string_literal ""EXPORTS\n"" (" """) (string_content "EXPORTS") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "__stream") () ")"))) (, ",") (binary_expression "0 < DAT_001d0218[0xb]" (number_literal "0") (< "<") (subscript_expression "DAT_001d0218[0xb]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xb") (] "]")))) () ")"))) () ")")) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    pcVar5 = " @%d";\n    do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);\n  }" ({ "{") (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" (identifier "puVar8") (= "=") (pointer_expression "&DAT_0007af9a" (& "&") (identifier "DAT_0007af9a"))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = " @%d";" (assignment_expression "pcVar5 = " @%d"" (identifier "pcVar5") (= "=") (string_literal "" @%d"" (" """) (string_content " @%d") (" """))) (; ";")) (do_statement "do {\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xb]);" (do "do") (compound_statement "{\n      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);\n      fwrite(puVar8,1,4,__stream);\n      FUN_000625f0();\n      if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }\n      if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }\n      if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);" (assignment_expression "puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc])" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc])" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 * 0x1c + DAT_001d0218[0xc])" (( "(") (binary_expression "iVar2 * 0x1c + DAT_001d0218[0xc]" (binary_expression "iVar2 * 0x1c" (identifier "iVar2") (* "*") (number_literal "0x1c")) (+ "+") (subscript_expression "DAT_001d0218[0xc]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xc") (] "]"))) () ")")))) (; ";")) (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" (identifier "fwrite") (argument_list "(puVar8,1,4,__stream)" (( "(") (identifier "puVar8") (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" (identifier "FUN_000625f0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }" (if "if") (parenthesized_expression "(((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0))" (( "(") (binary_expression "((char *)puVar7[1] != (char *)0x0) &&\n         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)" (parenthesized_expression "((char *)puVar7[1] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar7[1] != (char *)0x0" (cast_expression "(char *)puVar7[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)" (( "(") (comma_expression "iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7)" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)puVar7[1],(char *)*puVar7)" (identifier "strcmp") (argument_list "((char *)puVar7[1],(char *)*puVar7)" (( "(") (cast_expression "(char *)puVar7[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (, ",") (cast_expression "(char *)*puVar7" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n        FUN_000625f0();\n      }" ({ "{") (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" (identifier "fwrite") (argument_list "(&DAT_0006c0d1,1,3,__stream)" (( "(") (pointer_expression "&DAT_0006c0d1" (& "&") (identifier "DAT_0006c0d1")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" (identifier "FUN_000625f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar7[3] != -1) {\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }" (if "if") (parenthesized_expression "(puVar7[3] != -1)" (( "(") (binary_expression "puVar7[3] != -1" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        fprintf(__stream,pcVar5,puVar7[3]);\n      }" ({ "{") (expression_statement "fprintf(__stream,pcVar5,puVar7[3]);" (call_expression "fprintf(__stream,pcVar5,puVar7[3])" (identifier "fprintf") (argument_list "(__stream,pcVar5,puVar7[3])" (( "(") (identifier "__stream") (, ",") (identifier "pcVar5") (, ",") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(puVar7 + 5) == '\0') {\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" (if "if") (parenthesized_expression "(*(char *)(puVar7 + 5) == '\0')" (( "(") (binary_expression "*(char *)(puVar7 + 5) == '\0'" (pointer_expression "*(char *)(puVar7 + 5)" (* "*") (cast_expression "(char *)(puVar7 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 5)" (( "(") (binary_expression "puVar7 + 5" (identifier "puVar7") (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;\nLAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;\nLAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" ({ "{") (if_statement "if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;" (if "if") (parenthesized_expression "(*(char *)((int)puVar7 + 0x15) == '\0')" (( "(") (binary_expression "*(char *)((int)puVar7 + 0x15) == '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x15)" (* "*") (cast_expression "(char *)((int)puVar7 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x15)" (( "(") (binary_expression "(int)puVar7 + 0x15" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x15")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0006422a;" (goto "goto") (statement_identifier "LAB_0006422a") (; ";"))) (labeled_statement "LAB_000642de:\n        fwrite(" CONSTANT",1,9,__stream);" (statement_identifier "LAB_000642de") (: ":") (expression_statement "fwrite(" CONSTANT",1,9,__stream);" (call_expression "fwrite(" CONSTANT",1,9,__stream)" (identifier "fwrite") (argument_list "(" CONSTANT",1,9,__stream)" (( "(") (string_literal "" CONSTANT"" (" """) (string_content " CONSTANT") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (identifier "__stream") () ")"))) (; ";"))) (if_statement "if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;" (if "if") (parenthesized_expression "(*(char *)((int)puVar7 + 0x16) != '\0')" (( "(") (binary_expression "*(char *)((int)puVar7 + 0x16) != '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x16)" (* "*") (cast_expression "(char *)((int)puVar7 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x16)" (( "(") (binary_expression "(int)puVar7 + 0x16" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x16")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000642fc;" (goto "goto") (statement_identifier "LAB_000642fc") (; ";"))) (labeled_statement "LAB_00064234:\n        cVar1 = *(char *)((int)puVar7 + 0x17);" (statement_identifier "LAB_00064234") (: ":") (expression_statement "cVar1 = *(char *)((int)puVar7 + 0x17);" (assignment_expression "cVar1 = *(char *)((int)puVar7 + 0x17)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((int)puVar7 + 0x17)" (* "*") (cast_expression "(char *)((int)puVar7 + 0x17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x17)" (( "(") (binary_expression "(int)puVar7 + 0x17" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x17")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" (else "else") (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;\nLAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;\nLAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);\n        cVar1 = *(char *)((int)puVar7 + 0x17);\n      }" ({ "{") (expression_statement "fwrite(" PRIVATE",1,8,__stream);" (call_expression "fwrite(" PRIVATE",1,8,__stream)" (identifier "fwrite") (argument_list "(" PRIVATE",1,8,__stream)" (( "(") (string_literal "" PRIVATE"" (" """) (string_content " PRIVATE") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "__stream") () ")"))) (; ";")) (if_statement "if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;" (if "if") (parenthesized_expression "(*(char *)((int)puVar7 + 0x15) != '\0')" (( "(") (binary_expression "*(char *)((int)puVar7 + 0x15) != '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x15)" (* "*") (cast_expression "(char *)((int)puVar7 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x15)" (( "(") (binary_expression "(int)puVar7 + 0x15" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x15")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000642de;" (goto "goto") (statement_identifier "LAB_000642de") (; ";"))) (labeled_statement "LAB_0006422a:\n        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;" (statement_identifier "LAB_0006422a") (: ":") (if_statement "if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;" (if "if") (parenthesized_expression "(*(char *)((int)puVar7 + 0x16) == '\0')" (( "(") (binary_expression "*(char *)((int)puVar7 + 0x16) == '\0'" (pointer_expression "*(char *)((int)puVar7 + 0x16)" (* "*") (cast_expression "(char *)((int)puVar7 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x16)" (( "(") (binary_expression "(int)puVar7 + 0x16" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x16")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00064234;" (goto "goto") (statement_identifier "LAB_00064234") (; ";")))) (labeled_statement "LAB_000642fc:\n        fwrite(" NONAME",1,7,__stream);" (statement_identifier "LAB_000642fc") (: ":") (expression_statement "fwrite(" NONAME",1,7,__stream);" (call_expression "fwrite(" NONAME",1,7,__stream)" (identifier "fwrite") (argument_list "(" NONAME",1,7,__stream)" (( "(") (string_literal "" NONAME"" (" """) (string_content " NONAME") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "__stream") () ")"))) (; ";"))) (expression_statement "cVar1 = *(char *)((int)puVar7 + 0x17);" (assignment_expression "cVar1 = *(char *)((int)puVar7 + 0x17)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((int)puVar7 + 0x17)" (* "*") (cast_expression "(char *)((int)puVar7 + 0x17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x17)" (( "(") (binary_expression "(int)puVar7 + 0x17" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x17")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (cVar1 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        fwrite(" DATA",1,5,__stream);\n      }" ({ "{") (expression_statement "fwrite(" DATA",1,5,__stream);" (call_expression "fwrite(" DATA",1,5,__stream)" (identifier "fwrite") (argument_list "(" DATA",1,5,__stream)" (( "(") (string_literal "" DATA"" (" """) (string_content " DATA") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 < DAT_001d0218[0xb])" (( "(") (binary_expression "iVar2 < DAT_001d0218[0xb]" (identifier "iVar2") (< "<") (subscript_expression "DAT_001d0218[0xb]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xb") (] "]"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }" (if "if") (parenthesized_expression "((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe]))" (( "(") (binary_expression "(0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])" (parenthesized_expression "(0 < DAT_001d0218[0xe])" (( "(") (binary_expression "0 < DAT_001d0218[0xe]" (number_literal "0") (< "<") (subscript_expression "DAT_001d0218[0xe]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xe") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])" (( "(") (comma_expression "fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe]" (call_expression "fwrite("\nIMPORTS\n\n",1,10,__stream)" (identifier "fwrite") (argument_list "("\nIMPORTS\n\n",1,10,__stream)" (( "(") (string_literal ""\nIMPORTS\n\n"" (" """) (escape_sequence "\n") (string_content "IMPORTS") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (, ",") (binary_expression "0 < DAT_001d0218[0xe]" (number_literal "0") (< "<") (subscript_expression "DAT_001d0218[0xe]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xe") (] "]")))) () ")"))) () ")")) (compound_statement "{\n    puVar8 = &DAT_0007af9a;\n    iVar2 = 0;\n    do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);\n  }" ({ "{") (expression_statement "puVar8 = &DAT_0007af9a;" (assignment_expression "puVar8 = &DAT_0007af9a" (identifier "puVar8") (= "=") (pointer_expression "&DAT_0007af9a" (& "&") (identifier "DAT_0007af9a"))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    } while (iVar2 < DAT_001d0218[0xe]);" (do "do") (compound_statement "{\n      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);\n      fwrite(puVar8,1,4,__stream);\n      pcVar5 = (char *)*puVar7;\n      if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }\n      FUN_000625f0(puVar8,pcVar5);\n      fputc(0x2e,__stream);\n      if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }\n      if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }\n      iVar2 = iVar2 + 1;\n      fputc(10,__stream);\n    }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);" (assignment_expression "puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0218[0xf] + iVar2 * 0x18)" (( "(") (binary_expression "DAT_001d0218[0xf] + iVar2 * 0x18" (subscript_expression "DAT_001d0218[0xf]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (binary_expression "iVar2 * 0x18" (identifier "iVar2") (* "*") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "fwrite(puVar8,1,4,__stream);" (call_expression "fwrite(puVar8,1,4,__stream)" (identifier "fwrite") (argument_list "(puVar8,1,4,__stream)" (( "(") (identifier "puVar8") (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "pcVar5 = (char *)*puVar7;" (assignment_expression "pcVar5 = (char *)*puVar7" (identifier "pcVar5") (= "=") (cast_expression "(char *)*puVar7" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (if_statement "if ((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" (if "if") (parenthesized_expression "((pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0))))" (( "(") (binary_expression "(pcVar5 != (char *)0x0) &&\n         (((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))" (parenthesized_expression "(pcVar5 != (char *)0x0)" (( "(") (binary_expression "pcVar5 != (char *)0x0" (identifier "pcVar5") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))" (( "(") (parenthesized_expression "((char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0))" (( "(") (binary_expression "(char *)puVar7[2] == (char *)0x0 ||\n          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)" (binary_expression "(char *)puVar7[2] == (char *)0x0" (cast_expression "(char *)puVar7[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)" (( "(") (comma_expression "iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar5,(char *)puVar7[2])" (identifier "iVar3") (= "=") (call_expression "strcmp(pcVar5,(char *)puVar7[2])" (identifier "strcmp") (argument_list "(pcVar5,(char *)puVar7[2])" (( "(") (identifier "pcVar5") (, ",") (cast_expression "(char *)puVar7[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        FUN_000625f0(puVar8,pcVar5);\n        fwrite(&DAT_0006c0d1,1,3,__stream);\n      }" ({ "{") (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" (identifier "FUN_000625f0") (argument_list "(puVar8,pcVar5)" (( "(") (identifier "puVar8") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "fwrite(&DAT_0006c0d1,1,3,__stream);" (call_expression "fwrite(&DAT_0006c0d1,1,3,__stream)" (identifier "fwrite") (argument_list "(&DAT_0006c0d1,1,3,__stream)" (( "(") (pointer_expression "&DAT_0006c0d1" (& "&") (identifier "DAT_0006c0d1")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" (identifier "FUN_000625f0") (argument_list "(puVar8,pcVar5)" (( "(") (identifier "puVar8") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "fputc(0x2e,__stream);" (call_expression "fputc(0x2e,__stream)" (identifier "fputc") (argument_list "(0x2e,__stream)" (( "(") (number_literal "0x2e") (, ",") (identifier "__stream") () ")"))) (; ";")) (if_statement "if (puVar7[2] == 0) {\n        fprintf(__stream,"%d",puVar7[4]);\n      }\n      else {\n        FUN_000625f0(puVar8,pcVar5);\n      }" (if "if") (parenthesized_expression "(puVar7[2] == 0)" (( "(") (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        fprintf(__stream,"%d",puVar7[4]);\n      }" ({ "{") (expression_statement "fprintf(__stream,"%d",puVar7[4]);" (call_expression "fprintf(__stream,"%d",puVar7[4])" (identifier "fprintf") (argument_list "(__stream,"%d",puVar7[4])" (( "(") (identifier "__stream") (, ",") (string_literal ""%d"" (" """) (string_content "%d") (" """)) (, ",") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_000625f0(puVar8,pcVar5);\n      }" (else "else") (compound_statement "{\n        FUN_000625f0(puVar8,pcVar5);\n      }" ({ "{") (expression_statement "FUN_000625f0(puVar8,pcVar5);" (call_expression "FUN_000625f0(puVar8,pcVar5)" (identifier "FUN_000625f0") (argument_list "(puVar8,pcVar5)" (( "(") (identifier "puVar8") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (} "}")))) (if_statement "if (puVar7[3] != 0) {\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }" (if "if") (parenthesized_expression "(puVar7[3] != 0)" (( "(") (binary_expression "puVar7[3] != 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        fwrite(&DAT_001acd9c,1,4,__stream);\n        FUN_000625f0();\n      }" ({ "{") (expression_statement "fwrite(&DAT_001acd9c,1,4,__stream);" (call_expression "fwrite(&DAT_001acd9c,1,4,__stream)" (identifier "fwrite") (argument_list "(&DAT_001acd9c,1,4,__stream)" (( "(") (pointer_expression "&DAT_001acd9c" (& "&") (identifier "DAT_001acd9c")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_000625f0();" (call_expression "FUN_000625f0()" (identifier "FUN_000625f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 < DAT_001d0218[0xe])" (( "(") (binary_expression "iVar2 < DAT_001d0218[0xe]" (identifier "iVar2") (< "<") (subscript_expression "DAT_001d0218[0xe]" (identifier "DAT_001d0218") ([ "[") (number_literal "0xe") (] "]"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0006414e:\n  iVar2 = fclose(__stream);" (statement_identifier "LAB_0006414e") (: ":") (expression_statement "iVar2 = fclose(__stream);" (assignment_expression "iVar2 = fclose(__stream)" (identifier "iVar2") (= "=") (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (; ";"))) (if_statement "if (iVar2 != -1) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar2 != -1)" (( "(") (binary_expression "iVar2 != -1" (identifier "iVar2") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"%P: error closing file `%s\'\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: error closing file `%s\'\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: error closing file `%s\'\n"" (" """) (string_content "%P: error closing file `%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar4,param_1);" (call_expression "FUN_00034d20(uVar4,param_1)" (identifier "FUN_00034d20") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(char *pe_out_def_filename)

{
  type_1 *pdVar1;
  char var_11;
  type_2 *var_2;
  int var_10;
  type_3 *pdVar4;
  int var_13;
  char *var_14;
  type_4 *pdVar7;
  
  var_2 = var_1(pe_out_def_filename,"w");
  if (var_2 == (type_2 *)0x0) {
    var_14 = (char *)var_3(0,"%P: can\'t open output def file %s\n",5);
    var_4(var_14,pe_out_def_filename);
  }
  if (var_5 == (type_5 *)0x0) {
    var_14 = (char *)var_3(0,"; no contents available\n",5);
    var_6(var_2,var_14);
    goto LAB_0006414e;
  }
  if (var_5->name != (char *)0x0) {
    if (var_5->is_dll == 0) {
      var_7("NAME ",1,5,var_2);
    }
    else {
      var_7("LIBRARY ",1,8,var_2);
    }
    var_8(var_5->name,(type_2 *)var_2,1);
    if (*(int *)((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)
        != 0 || (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags != 0) {
      var_7(" BASE=0x",1,8,var_2);
      var_6(var_2,"%016llx",
              (int)((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags,
              *(type_6 *)
               ((int)&((((link_info.output_bfd)->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4));
    }
    var_9(10,var_2);
  }
  if (var_5->description != (char *)0x0) {
    var_7("DESCRIPTION ",1,0xc,var_2);
    var_8(var_5->description,(type_2 *)var_2,1);
    var_9(10,var_2);
  }
  if (var_5->version_minor == -1) {
    if (var_5->version_major != -1) {
      var_14 = "VERSION %d\n";
      goto LAB_000640a9;
    }
  }
  else {
    var_14 = "VERSION %d.%d\n";
LAB_000640a9:
    var_6(var_2,var_14,var_5->version_major);
  }
  if ((var_5->stack_reserve == -1) && (var_5->heap_reserve == -1)) {
    var_10 = -1;
    if (var_5->stack_commit != -1) {
LAB_000640ee:
      var_14 = "STACKSIZE 0x%x,0x%x\n";
LAB_000640f6:
      var_6(var_2,var_14,var_10);
      var_10 = var_5->heap_reserve;
      goto LAB_00064109;
    }
    if (var_5->heap_commit != -1) {
      var_10 = -1;
      goto LAB_00064115;
    }
  }
  else {
    var_9(10,var_2);
    if (var_5->stack_commit != -1) {
      var_10 = var_5->stack_reserve;
      goto LAB_000640ee;
    }
    var_10 = var_5->stack_reserve;
    if (var_10 != -1) {
      var_14 = "STACKSIZE 0x%x\n";
      goto LAB_000640f6;
    }
    var_10 = var_5->heap_reserve;
LAB_00064109:
    if (var_5->heap_commit == -1) {
      if (var_10 == -1) goto LAB_0006412d;
      var_14 = "HEAPSIZE 0x%x\n";
    }
    else {
LAB_00064115:
      var_14 = "HEAPSIZE 0x%x,0x%x\n";
    }
    var_6(var_2,var_14,var_10);
  }
LAB_0006412d:
  if ((0 < var_5->num_section_defs) &&
     (var_7("\nSECTIONS\n\n",1,0xb,var_2), 0 < var_5->num_section_defs)) {
    var_10 = 0;
    do {
      var_7(&DAT_0007af9a,1,4,var_2);
      var_8(var_5->section_defs[var_10].name,(type_2 *)var_2,0);
      pdVar4 = var_5->section_defs + var_10;
      if (pdVar4->class != (char *)0x0) {
        var_7(" CLASS ",1,7,var_2);
        var_8(var_5->section_defs[var_10].class,(type_2 *)var_2,0);
        pdVar4 = var_5->section_defs + var_10;
      }
      if (pdVar4->flag_read == '\0') {
        if (pdVar4->flag_write == '\0') goto LAB_000643ba;
LAB_00064498:
        var_7(" WRITE",1,6,var_2);
        pdVar4 = var_5->section_defs + var_10;
        if (pdVar4->flag_execute != '\0') goto LAB_000644c3;
LAB_000643c4:
        var_11 = pdVar4->flag_shared;
      }
      else {
        var_7(" READ",1,5,var_2);
        pdVar4 = var_5->section_defs + var_10;
        if (pdVar4->flag_write != '\0') goto LAB_00064498;
LAB_000643ba:
        if (pdVar4->flag_execute == '\0') goto LAB_000643c4;
LAB_000644c3:
        var_7(" EXECUTE",1,8,var_2);
        var_11 = var_5->section_defs[var_10].flag_shared;
      }
      if (var_11 != '\0') {
        var_7(" SHARED",1,7,var_2);
      }
      var_10 = var_10 + 1;
      var_9(10,var_2);
    } while (var_10 < var_5->num_section_defs);
  }
  if ((0 < var_5->num_exports) &&
     (var_7("EXPORTS\n",1,8,var_2), 0 < var_5->num_exports)) {
    var_10 = 0;
    do {
      pdVar7 = var_5->exports + var_10;
      var_7(&DAT_0007af9a,1,4,var_2);
      var_8(pdVar7->name,(type_2 *)var_2,0);
      if ((pdVar7->internal_name != (char *)0x0) &&
         (var_13 = var_12(pdVar7->internal_name,pdVar7->name), var_13 != 0)) {
        var_7(&DAT_0006c0d1,1,3,var_2);
        var_8(pdVar7->internal_name,(type_2 *)var_2,0);
      }
      if (pdVar7->ordinal != -1) {
        var_6(var_2," @%d",pdVar7->ordinal);
      }
      if (pdVar7->flag_private == '\0') {
        if (pdVar7->flag_constant == '\0') goto LAB_0006422a;
LAB_000642de:
        var_7(" CONSTANT",1,9,var_2);
        if (pdVar7->flag_noname != '\0') goto LAB_000642fc;
LAB_00064234:
        var_11 = pdVar7->flag_data;
      }
      else {
        var_7(" PRIVATE",1,8,var_2);
        if (pdVar7->flag_constant != '\0') goto LAB_000642de;
LAB_0006422a:
        if (pdVar7->flag_noname == '\0') goto LAB_00064234;
LAB_000642fc:
        var_7(" NONAME",1,7,var_2);
        var_11 = pdVar7->flag_data;
      }
      if (var_11 != '\0') {
        var_7(" DATA",1,5,var_2);
      }
      var_10 = var_10 + 1;
      var_9(10,var_2);
    } while (var_10 < var_5->num_exports);
  }
  if ((0 < var_5->num_imports) &&
     (var_7("\nIMPORTS\n\n",1,10,var_2), 0 < var_5->num_imports)) {
    var_10 = 0;
    do {
      pdVar1 = var_5->imports + var_10;
      var_7(&DAT_0007af9a,1,4,var_2);
      var_14 = pdVar1->internal_name;
      if ((var_14 != (char *)0x0) &&
         ((pdVar1->name == (char *)0x0 || (var_13 = var_12(var_14,pdVar1->name), var_13 != 0)))) {
        var_8(var_14,(type_2 *)var_2,0);
        var_7(&DAT_0006c0d1,1,3,var_2);
      }
      var_8(pdVar1->module->name,(type_2 *)var_2,0);
      var_9(0x2e,var_2);
      if (pdVar1->name == (char *)0x0) {
        var_6(var_2,"%d",pdVar1->ordinal);
      }
      else {
        var_8(pdVar1->name,(type_2 *)var_2,0);
      }
      if (pdVar1->its_name != (char *)0x0) {
        var_7(&DAT_001acd9c,1,4,var_2);
        var_8(pdVar1->its_name,(type_2 *)var_2,0);
      }
      var_10 = var_10 + 1;
      var_9(10,var_2);
    } while (var_10 < var_5->num_imports);
  }
LAB_0006414e:
  var_10 = var_15(var_2);
  if (var_10 != -1) {
    return;
  }
  var_14 = (char *)var_3(0,"%P: error closing file `%s\'\n",5);
  var_4(var_14,pe_out_def_filename);
  return;
}


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

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

void MASKED(char *param_1)

{
  char cVar1;
  FILE *__stream;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined *puVar8;
  
  __stream = fopen64(param_1,"w");
  if (__stream == (FILE *)0x0) {
    uVar4 = dcgettext(0,"%P: can\'t open output def file %s\n",5);
    FUN_00034d20(uVar4,param_1);
  }
  if (DAT_001d0218 == (int *)0x0) {
    pcVar5 = (char *)dcgettext(0,"; no contents available\n",5);
    fprintf(__stream,pcVar5);
    goto LAB_0006414e;
  }
  if (*DAT_001d0218 != 0) {
    if (DAT_001d0218[1] == 0) {
      fwrite("NAME ",1,5,__stream);
    }
    else {
      fwrite("LIBRARY ",1,8,__stream);
    }
    FUN_000625f0();
    if (*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8) != 0 ||
        *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4) != 0) {
      fwrite(" BASE=0x",1,8,__stream);
      fprintf(__stream,"%016llx",*(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa4),
              *(undefined4 *)(*(int *)(DAT_001d0414 + 0xa0) + 0xa8));
    }
    fputc(10,__stream);
  }
  if (DAT_001d0218[4] != 0) {
    fwrite("DESCRIPTION ",1,0xc,__stream);
    FUN_000625f0();
    fputc(10,__stream);
  }
  if (DAT_001d0218[0x11] == -1) {
    if (DAT_001d0218[0x10] != -1) {
      pcVar5 = "VERSION %d\n";
      goto LAB_000640a9;
    }
  }
  else {
    pcVar5 = "VERSION %d.%d\n";
LAB_000640a9:
    fprintf(__stream,pcVar5,DAT_001d0218[0x10]);
  }
  if ((DAT_001d0218[5] == -1) && (DAT_001d0218[7] == -1)) {
    iVar2 = -1;
    if (DAT_001d0218[6] != -1) {
LAB_000640ee:
      pcVar5 = "STACKSIZE 0x%x,0x%x\n";
LAB_000640f6:
      fprintf(__stream,pcVar5,iVar2);
      iVar2 = DAT_001d0218[7];
      goto LAB_00064109;
    }
    if (DAT_001d0218[8] != -1) {
      iVar2 = -1;
      goto LAB_00064115;
    }
  }
  else {
    fputc(10,__stream);
    if (DAT_001d0218[6] != -1) {
      iVar2 = DAT_001d0218[5];
      goto LAB_000640ee;
    }
    iVar2 = DAT_001d0218[5];
    if (iVar2 != -1) {
      pcVar5 = "STACKSIZE 0x%x\n";
      goto LAB_000640f6;
    }
    iVar2 = DAT_001d0218[7];
LAB_00064109:
    if (DAT_001d0218[8] == -1) {
      if (iVar2 == -1) goto LAB_0006412d;
      pcVar5 = "HEAPSIZE 0x%x\n";
    }
    else {
LAB_00064115:
      pcVar5 = "HEAPSIZE 0x%x,0x%x\n";
    }
    fprintf(__stream,pcVar5,iVar2);
  }
LAB_0006412d:
  if ((0 < DAT_001d0218[9]) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < DAT_001d0218[9])) {
    puVar8 = &DAT_0007af9a;
    iVar2 = 0;
    pcVar5 = " CLASS ";
    do {
      fwrite(puVar8,1,4,__stream);
      iVar3 = iVar2 * 0xc;
      FUN_000625f0();
      iVar6 = DAT_001d0218[10] + iVar3;
      if (*(int *)(iVar6 + 4) != 0) {
        fwrite(pcVar5,1,7,__stream);
        FUN_000625f0();
        iVar6 = DAT_001d0218[10] + iVar3;
      }
      if (*(char *)(iVar6 + 8) == '\0') {
        if (*(char *)(iVar6 + 9) == '\0') goto LAB_000643ba;
LAB_00064498:
        fwrite(" WRITE",1,6,__stream);
        iVar6 = DAT_001d0218[10] + iVar3;
        if (*(char *)(iVar6 + 10) != '\0') goto LAB_000644c3;
LAB_000643c4:
        cVar1 = *(char *)(iVar6 + 0xb);
      }
      else {
        fwrite(" READ",1,5,__stream);
        iVar6 = DAT_001d0218[10] + iVar3;
        if (*(char *)(iVar6 + 9) != '\0') goto LAB_00064498;
LAB_000643ba:
        if (*(char *)(iVar6 + 10) == '\0') goto LAB_000643c4;
LAB_000644c3:
        fwrite(" EXECUTE",1,8,__stream);
        cVar1 = *(char *)(iVar3 + DAT_001d0218[10] + 0xb);
      }
      if (cVar1 != '\0') {
        fwrite(" SHARED",1,7,__stream);
      }
      iVar2 = iVar2 + 1;
      fputc(10,__stream);
    } while (iVar2 < DAT_001d0218[9]);
  }
  if ((0 < DAT_001d0218[0xb]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < DAT_001d0218[0xb])) {
    puVar8 = &DAT_0007af9a;
    iVar2 = 0;
    pcVar5 = " @%d";
    do {
      puVar7 = (undefined4 *)(iVar2 * 0x1c + DAT_001d0218[0xc]);
      fwrite(puVar8,1,4,__stream);
      FUN_000625f0();
      if (((char *)puVar7[1] != (char *)0x0) &&
         (iVar3 = strcmp((char *)puVar7[1],(char *)*puVar7), iVar3 != 0)) {
        fwrite(&DAT_0006c0d1,1,3,__stream);
        FUN_000625f0();
      }
      if (puVar7[3] != -1) {
        fprintf(__stream,pcVar5,puVar7[3]);
      }
      if (*(char *)(puVar7 + 5) == '\0') {
        if (*(char *)((int)puVar7 + 0x15) == '\0') goto LAB_0006422a;
LAB_000642de:
        fwrite(" CONSTANT",1,9,__stream);
        if (*(char *)((int)puVar7 + 0x16) != '\0') goto LAB_000642fc;
LAB_00064234:
        cVar1 = *(char *)((int)puVar7 + 0x17);
      }
      else {
        fwrite(" PRIVATE",1,8,__stream);
        if (*(char *)((int)puVar7 + 0x15) != '\0') goto LAB_000642de;
LAB_0006422a:
        if (*(char *)((int)puVar7 + 0x16) == '\0') goto LAB_00064234;
LAB_000642fc:
        fwrite(" NONAME",1,7,__stream);
        cVar1 = *(char *)((int)puVar7 + 0x17);
      }
      if (cVar1 != '\0') {
        fwrite(" DATA",1,5,__stream);
      }
      iVar2 = iVar2 + 1;
      fputc(10,__stream);
    } while (iVar2 < DAT_001d0218[0xb]);
  }
  if ((0 < DAT_001d0218[0xe]) && (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < DAT_001d0218[0xe])) {
    puVar8 = &DAT_0007af9a;
    iVar2 = 0;
    do {
      puVar7 = (undefined4 *)(DAT_001d0218[0xf] + iVar2 * 0x18);
      fwrite(puVar8,1,4,__stream);
      pcVar5 = (char *)*puVar7;
      if ((pcVar5 != (char *)0x0) &&
         (((char *)puVar7[2] == (char *)0x0 ||
          (iVar3 = strcmp(pcVar5,(char *)puVar7[2]), iVar3 != 0)))) {
        FUN_000625f0(puVar8,pcVar5);
        fwrite(&DAT_0006c0d1,1,3,__stream);
      }
      FUN_000625f0(puVar8,pcVar5);
      fputc(0x2e,__stream);
      if (puVar7[2] == 0) {
        fprintf(__stream,"%d",puVar7[4]);
      }
      else {
        FUN_000625f0(puVar8,pcVar5);
      }
      if (puVar7[3] != 0) {
        fwrite(&DAT_001acd9c,1,4,__stream);
        FUN_000625f0();
      }
      iVar2 = iVar2 + 1;
      fputc(10,__stream);
    } while (iVar2 < DAT_001d0218[0xe]);
  }
LAB_0006414e:
  iVar2 = fclose(__stream);
  if (iVar2 != -1) {
    return;
  }
  uVar4 = dcgettext(0,"%P: error closing file `%s\'\n",5);
  FUN_00034d20(uVar4,param_1);
  return;
}

