
void pe_dll_generate_def_file(char *pe_out_def_filename)

{
  def_file_import *pdVar1;
  def_file_export *pdVar2;
  char cVar3;
  uint uVar4;
  int iVar5;
  FILE *__stream;
  def_file_section *pdVar6;
  char *pcVar7;
  uint uVar8;
  long lVar9;
  
  __stream = fopen(pe_out_def_filename,"w");
  if (__stream == (FILE *)0x0) {
    pcVar7 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);
    einfo(pcVar7,pe_out_def_filename);
  }
  if (pe_def_file == (def_file *)0x0) {
    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);
    fprintf(__stream,pcVar7);
    goto LAB_00155f42;
  }
  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 ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0) {
      fwrite(" BASE=0x",1,8,__stream);
      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);
    }
    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) {
      fprintf(__stream,"VERSION %d\n");
    }
  }
  else {
    fprintf(__stream,"VERSION %d.%d\n");
  }
  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {
    uVar8 = pe_def_file->stack_commit;
    uVar4 = 0xffffffff;
    if (uVar8 == 0xffffffff) {
      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;
      uVar8 = 0xffffffff;
    }
    else {
LAB_00155fa8:
      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);
      uVar8 = pe_def_file->heap_reserve;
      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;
    }
LAB_00155f05:
    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);
LAB_00155f1f:
    iVar5 = pe_def_file->num_section_defs;
  }
  else {
    fputc(10,__stream);
    uVar8 = pe_def_file->stack_commit;
    uVar4 = pe_def_file->stack_reserve;
    if (uVar8 != 0xffffffff) goto LAB_00155fa8;
    if (uVar4 != 0xffffffff) {
      fprintf(__stream,"STACKSIZE 0x%x\n");
    }
    uVar8 = pe_def_file->heap_reserve;
    if (pe_def_file->heap_commit != -1) goto LAB_00155f05;
LAB_00155fd1:
    if (uVar8 == 0xffffffff) goto LAB_00155f1f;
    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);
    iVar5 = pe_def_file->num_section_defs;
  }
  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {
    lVar9 = 0;
    do {
      fwrite(&DAT_0016c102,1,4,__stream);
      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);
      pdVar6 = pe_def_file->section_defs + lVar9;
      if (pdVar6->class != (char *)0x0) {
        fwrite(" CLASS ",1,7,__stream);
        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);
        pdVar6 = pe_def_file->section_defs + lVar9;
      }
      if (pdVar6->flag_read == '\0') {
        if (pdVar6->flag_write == '\0') goto LAB_0015604a;
LAB_00156154:
        fwrite(" WRITE",1,6,__stream);
        pdVar6 = pe_def_file->section_defs + lVar9;
        if (pdVar6->flag_execute != '\0') goto LAB_00156188;
LAB_00156054:
        cVar3 = pdVar6->flag_shared;
      }
      else {
        fwrite(" READ",1,5,__stream);
        pdVar6 = pe_def_file->section_defs + lVar9;
        if (pdVar6->flag_write != '\0') goto LAB_00156154;
LAB_0015604a:
        if (pdVar6->flag_execute == '\0') goto LAB_00156054;
LAB_00156188:
        fwrite(" EXECUTE",1,8,__stream);
        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;
      }
      if (cVar3 != '\0') {
        fwrite(" SHARED",1,7,__stream);
      }
      lVar9 = lVar9 + 1;
      fputc(10,__stream);
    } while ((int)lVar9 < 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)) {
    lVar9 = 0;
    do {
      pdVar2 = pe_def_file->exports + lVar9;
      fwrite(&DAT_0016c102,1,4,__stream);
      quoteput(pdVar2->name,(FILE *)__stream,0);
      if ((pdVar2->internal_name != (char *)0x0) &&
         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {
        fwrite(&DAT_0015d0cd,1,3,__stream);
        quoteput(pdVar2->internal_name,(FILE *)__stream,0);
      }
      if (pdVar2->ordinal != -1) {
        fprintf(__stream," @%d");
      }
      if (pdVar2->flag_private == '\0') {
        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;
LAB_00156430:
        fwrite(" CONSTANT",1,9,__stream);
        if (pdVar2->flag_noname != '\0') goto LAB_00156453;
LAB_00156374:
        cVar3 = pdVar2->flag_data;
      }
      else {
        fwrite(" PRIVATE",1,8,__stream);
        if (pdVar2->flag_constant != '\0') goto LAB_00156430;
LAB_0015636a:
        if (pdVar2->flag_noname == '\0') goto LAB_00156374;
LAB_00156453:
        fwrite(" NONAME",1,7,__stream);
        cVar3 = pdVar2->flag_data;
      }
      if (cVar3 != '\0') {
        fwrite(" DATA",1,5,__stream);
      }
      lVar9 = lVar9 + 1;
      fputc(10,__stream);
    } while ((int)lVar9 < 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)) {
    lVar9 = 0;
    do {
      pdVar1 = pe_def_file->imports + lVar9;
      fwrite(&DAT_0016c102,1,4,__stream);
      pcVar7 = pdVar1->internal_name;
      if ((pcVar7 != (char *)0x0) &&
         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {
        quoteput(pcVar7,(FILE *)__stream,0);
        fwrite(&DAT_0015d0cd,1,3,__stream);
      }
      quoteput(pdVar1->module->name,(FILE *)__stream,0);
      fputc(0x2e,__stream);
      if (pdVar1->name == (char *)0x0) {
        fprintf(__stream,"%d",(ulong)(uint)pdVar1->ordinal);
      }
      else {
        quoteput(pdVar1->name,(FILE *)__stream,0);
      }
      if (pdVar1->its_name != (char *)0x0) {
        fwrite(&DAT_0029f2fc,1,4,__stream);
        quoteput(pdVar1->its_name,(FILE *)__stream,0);
      }
      lVar9 = lVar9 + 1;
      fputc(10,__stream);
    } while ((int)lVar9 < pe_def_file->num_imports);
  }
LAB_00155f42:
  iVar5 = fclose(__stream);
  if (iVar5 != -1) {
    return;
  }
  pcVar7 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);
  einfo(pcVar7,pe_out_def_filename);
  return;
}



void FUN_00155d80(char *param_1)

{
  undefined8 *puVar1;
  long lVar2;
  char cVar3;
  uint uVar4;
  int iVar5;
  FILE *__stream;
  undefined8 uVar6;
  char *pcVar7;
  long lVar8;
  uint uVar9;
  long lVar10;
  
  __stream = fopen(param_1,"w");
  if (__stream == (FILE *)0x0) {
    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);
    FUN_00129380(uVar6,param_1);
  }
  if (DAT_002b5c00 == (long *)0x0) {
    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);
    fprintf(__stream,pcVar7);
    goto LAB_00155f42;
  }
  if (*DAT_002b5c00 != 0) {
    if ((int)DAT_002b5c00[1] == 0) {
      fwrite("NAME ",1,5,__stream);
    }
    else {
      fwrite("LIBRARY ",1,8,__stream);
    }
    FUN_001543c0(*DAT_002b5c00,__stream,1);
    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {
      fwrite(" BASE=0x",1,8,__stream);
      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));
    }
    fputc(10,__stream);
  }
  if (DAT_002b5c00[3] != 0) {
    fwrite("DESCRIPTION ",1,0xc,__stream);
    FUN_001543c0(DAT_002b5c00[3],__stream,1);
    fputc(10,__stream);
  }
  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {
    if ((int)DAT_002b5c00[0xd] != -1) {
      fprintf(__stream,"VERSION %d\n");
    }
  }
  else {
    fprintf(__stream,"VERSION %d.%d\n");
  }
  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {
    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);
    uVar4 = 0xffffffff;
    if (uVar9 == 0xffffffff) {
      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;
      uVar9 = 0xffffffff;
    }
    else {
LAB_00155fa8:
      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);
      uVar9 = *(uint *)(DAT_002b5c00 + 5);
      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;
    }
LAB_00155f05:
    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);
LAB_00155f1f:
    iVar5 = (int)DAT_002b5c00[6];
  }
  else {
    fputc(10,__stream);
    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);
    uVar4 = *(uint *)(DAT_002b5c00 + 4);
    if (uVar9 != 0xffffffff) goto LAB_00155fa8;
    if (uVar4 != 0xffffffff) {
      fprintf(__stream,"STACKSIZE 0x%x\n");
    }
    uVar9 = *(uint *)(DAT_002b5c00 + 5);
    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;
LAB_00155fd1:
    if (uVar9 == 0xffffffff) goto LAB_00155f1f;
    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);
    iVar5 = (int)DAT_002b5c00[6];
  }
  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {
    lVar10 = 0;
    do {
      fwrite(&DAT_0016c102,1,4,__stream);
      lVar2 = lVar10 * 0x18;
      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);
      lVar8 = DAT_002b5c00[7] + lVar2;
      if (*(long *)(lVar8 + 8) != 0) {
        fwrite(" CLASS ",1,7,__stream);
        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);
        lVar8 = DAT_002b5c00[7] + lVar2;
      }
      if (*(char *)(lVar8 + 0x10) == '\0') {
        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;
LAB_00156154:
        fwrite(" WRITE",1,6,__stream);
        lVar8 = DAT_002b5c00[7] + lVar2;
        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;
LAB_00156054:
        cVar3 = *(char *)(lVar8 + 0x13);
      }
      else {
        fwrite(" READ",1,5,__stream);
        lVar8 = DAT_002b5c00[7] + lVar2;
        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;
LAB_0015604a:
        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;
LAB_00156188:
        fwrite(" EXECUTE",1,8,__stream);
        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);
      }
      if (cVar3 != '\0') {
        fwrite(" SHARED",1,7,__stream);
      }
      lVar10 = lVar10 + 1;
      fputc(10,__stream);
    } while ((int)lVar10 < (int)DAT_002b5c00[6]);
  }
  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {
    lVar10 = 0;
    do {
      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);
      fwrite(&DAT_0016c102,1,4,__stream);
      FUN_001543c0(*puVar1,__stream,0);
      if (((char *)puVar1[1] != (char *)0x0) &&
         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {
        fwrite(&DAT_0015d0cd,1,3,__stream);
        FUN_001543c0(puVar1[1],__stream,0);
      }
      if (*(int *)(puVar1 + 3) != -1) {
        fprintf(__stream," @%d");
      }
      if (*(char *)(puVar1 + 4) == '\0') {
        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;
LAB_00156430:
        fwrite(" CONSTANT",1,9,__stream);
        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;
LAB_00156374:
        cVar3 = *(char *)((long)puVar1 + 0x23);
      }
      else {
        fwrite(" PRIVATE",1,8,__stream);
        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;
LAB_0015636a:
        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;
LAB_00156453:
        fwrite(" NONAME",1,7,__stream);
        cVar3 = *(char *)((long)puVar1 + 0x23);
      }
      if (cVar3 != '\0') {
        fwrite(" DATA",1,5,__stream);
      }
      lVar10 = lVar10 + 1;
      fputc(10,__stream);
    } while ((int)lVar10 < (int)DAT_002b5c00[8]);
  }
  if ((0 < (int)DAT_002b5c00[0xb]) &&
     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {
    lVar10 = 0;
    do {
      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);
      fwrite(&DAT_0016c102,1,4,__stream);
      pcVar7 = (char *)*puVar1;
      if ((pcVar7 != (char *)0x0) &&
         (((char *)puVar1[2] == (char *)0x0 ||
          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {
        FUN_001543c0(pcVar7,__stream,0);
        fwrite(&DAT_0015d0cd,1,3,__stream);
      }
      FUN_001543c0(puVar1[1] + 0x10,__stream,0);
      fputc(0x2e,__stream);
      if (puVar1[2] == 0) {
        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));
      }
      else {
        FUN_001543c0(puVar1[2],__stream,0);
      }
      if (puVar1[3] != 0) {
        fwrite(&DAT_0029f2fc,1,4,__stream);
        FUN_001543c0(puVar1[3],__stream,0);
      }
      lVar10 = lVar10 + 1;
      fputc(10,__stream);
    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);
  }
LAB_00155f42:
  iVar5 = fclose(__stream);
  if (iVar5 != -1) {
    return;
  }
  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);
  FUN_00129380(uVar6,param_1);
  return;
}


PUSH R15
LEA RSI,[0x16b50f]
PUSH R14
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
PUSH RBX
SUB RSP,0x8
CALL 0x0010da40
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00156548
MOV RAX,qword ptr [0x002b5c00]
TEST RAX,RAX
JZ 0x00156580
CMP qword ptr [RAX],0x0
JZ 0x00155e2c
MOV R9D,dword ptr [RAX + 0x8]
MOV RCX,RBX
TEST R9D,R9D
JNZ 0x00155f88
MOV EDX,0x5
MOV ESI,0x1
LEA RDI,[0x29f211]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
MOV EDX,0x1
MOV RSI,RBX
MOV RDI,qword ptr [RAX]
CALL 0x001543c0
MOV RAX,qword ptr [0x002b5f90]
MOV RAX,qword ptr [RAX + 0xf8]
CMP qword ptr [RAX + 0x100],0x0
JNZ 0x00156500
MOV RSI,RBX
MOV EDI,0xa
CALL 0x0010d530
MOV RAX,qword ptr [0x002b5c00]
CMP qword ptr [RAX + 0x18],0x0
JZ 0x00155e78
MOV RCX,RBX
MOV EDX,0xc
MOV ESI,0x1
LEA RDI,[0x29f220]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
MOV EDX,0x1
MOV RSI,RBX
MOV RDI,qword ptr [RAX + 0x18]
CALL 0x001543c0
MOV RSI,RBX
MOV EDI,0xa
CALL 0x0010d530
MOV RAX,qword ptr [0x002b5c00]
MOV ECX,dword ptr [RAX + 0x6c]
MOV EDX,dword ptr [RAX + 0x68]
CMP ECX,-0x1
JNZ 0x00155f68
CMP EDX,-0x1
JZ 0x00155ea4
LEA RSI,[0x29f23c]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x0010d6d0
MOV RAX,qword ptr [0x002b5c00]
CMP dword ptr [RAX + 0x20],-0x1
JNZ 0x00155eb6
MOV EDX,dword ptr [RAX + 0x28]
CMP EDX,-0x1
JZ 0x001565a8
MOV RSI,RBX
MOV EDI,0xa
CALL 0x0010d530
MOV RAX,qword ptr [0x002b5c00]
MOV ESI,dword ptr [RAX + 0x24]
MOV EDX,dword ptr [RAX + 0x20]
CMP ESI,-0x1
JNZ 0x00155fa8
CMP EDX,-0x1
JZ 0x00155ef6
LEA RSI,[0x29f25d]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x0010d6d0
MOV RAX,qword ptr [0x002b5c00]
MOV ECX,dword ptr [RAX + 0x2c]
MOV ESI,dword ptr [RAX + 0x28]
CMP ECX,-0x1
JZ 0x00155fd1
MOV EDX,ESI
MOV RDI,RBX
LEA RSI,[0x29f26d]
XOR EAX,EAX
CALL 0x0010d6d0
MOV RAX,qword ptr [0x002b5c00]
MOV R8D,dword ptr [RAX + 0x30]
TEST R8D,R8D
JG 0x00156001
MOV ESI,dword ptr [RAX + 0x40]
TEST ESI,ESI
JG 0x00156328
MOV EDX,dword ptr [RAX + 0x58]
TEST EDX,EDX
JG 0x001561e0
MOV RDI,RBX
CALL 0x0010d2d0
CMP EAX,-0x1
JZ 0x001564c8
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RSI,[0x29f22d]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x0010d6d0
MOV RAX,qword ptr [0x002b5c00]
JMP 0x00155ea4
MOV EDX,0x8
MOV ESI,0x1
LEA RDI,[0x29f208]
CALL 0x0010dbe0
JMP 0x00155de5
MOV ECX,ESI
MOV RDI,RBX
LEA RSI,[0x29f248]
XOR EAX,EAX
CALL 0x0010d6d0
MOV RAX,qword ptr [0x002b5c00]
MOV ECX,dword ptr [RAX + 0x2c]
MOV ESI,dword ptr [RAX + 0x28]
CMP ECX,-0x1
JNZ 0x00155f05
CMP ESI,-0x1
JZ 0x00155f1f
MOV EDX,ESI
MOV RDI,RBX
LEA RSI,[0x29f281]
XOR EAX,EAX
CALL 0x0010d6d0
MOV RAX,qword ptr [0x002b5c00]
MOV R8D,dword ptr [RAX + 0x30]
TEST R8D,R8D
JLE 0x00155f2c
LEA RDI,[0x29f290]
MOV RCX,RBX
MOV EDX,0xb
MOV ESI,0x1
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
MOV EDI,dword ptr [RAX + 0x30]
TEST EDI,EDI
JLE 0x00155f2c
XOR EBP,EBP
LEA R13,[0x16c102]
JMP 0x0015607f
CMP byte ptr [RAX + 0x11],0x0
JNZ 0x00156154
CMP byte ptr [RAX + 0x12],0x0
JNZ 0x00156188
CMP byte ptr [RAX + 0x13],0x0
JNZ 0x001561b9
MOV RSI,RBX
MOV EDI,0xa
ADD RBP,0x1
CALL 0x0010d530
MOV RAX,qword ptr [0x002b5c00]
CMP dword ptr [RAX + 0x30],EBP
JLE 0x00155f2c
MOV RCX,RBX
MOV EDX,0x4
MOV ESI,0x1
MOV RDI,R13
CALL 0x0010dbe0
MOV RDX,qword ptr [0x002b5c00]
LEA RAX,[RBP + RBP*0x2]
MOV RSI,RBX
LEA R14,[RAX*0x8]
MOV RDX,qword ptr [RDX + 0x38]
MOV RDI,qword ptr [RDX + RAX*0x8]
XOR EDX,EDX
CALL 0x001543c0
MOV RAX,qword ptr [0x002b5c00]
MOV RCX,qword ptr [RAX + 0x38]
ADD RCX,R14
CMP qword ptr [RCX + 0x8],0x0
MOV RAX,RCX
JZ 0x00156116
MOV RCX,RBX
MOV EDX,0x7
MOV ESI,0x1
LEA RDI,[0x29f29c]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
XOR EDX,EDX
MOV RSI,RBX
MOV RAX,qword ptr [RAX + 0x38]
MOV RDI,qword ptr [RAX + R14*0x1 + 0x8]
CALL 0x001543c0
MOV RAX,qword ptr [0x002b5c00]
MOV RCX,qword ptr [RAX + 0x38]
ADD RCX,R14
MOV RAX,RCX
CMP byte ptr [RAX + 0x10],0x0
JZ 0x00156040
MOV RCX,RBX
MOV EDX,0x5
MOV ESI,0x1
LEA RDI,[0x29f2a4]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
MOV RCX,qword ptr [RAX + 0x38]
ADD RCX,R14
MOV RAX,RCX
CMP byte ptr [RAX + 0x11],0x0
JZ 0x0015604a
MOV RCX,RBX
MOV EDX,0x6
MOV ESI,0x1
LEA RDI,[0x29f2aa]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
MOV RCX,qword ptr [RAX + 0x38]
ADD RCX,R14
MOV RAX,RCX
CMP byte ptr [RAX + 0x12],0x0
JZ 0x00156054
MOV RCX,RBX
MOV EDX,0x8
MOV ESI,0x1
LEA RDI,[0x29f2b1]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
ADD R14,qword ptr [RAX + 0x38]
MOV RAX,R14
CMP byte ptr [RAX + 0x13],0x0
JZ 0x0015605e
MOV RCX,RBX
MOV EDX,0x7
MOV ESI,0x1
LEA RDI,[0x29f2ba]
CALL 0x0010dbe0
JMP 0x0015605e
MOV EDX,0xa
MOV RCX,RBX
MOV ESI,0x1
LEA RDI,[0x29f2f1]
CALL 0x0010dbe0
MOV RDX,qword ptr [0x002b5c00]
MOV EAX,dword ptr [RDX + 0x58]
TEST EAX,EAX
JLE 0x00155f42
XOR R13D,R13D
LEA R14,[0x16c102]
JMP 0x0015627a
XOR EDX,EDX
MOV RSI,RBX
CALL 0x001543c0
CMP qword ptr [RBP + 0x18],0x0
JZ 0x00156258
MOV EDX,0x4
MOV ESI,0x1
LEA RDI,[0x29f2fc]
MOV RCX,RBX
CALL 0x0010dbe0
MOV RDI,qword ptr [RBP + 0x18]
XOR EDX,EDX
MOV RSI,RBX
CALL 0x001543c0
MOV RSI,RBX
MOV EDI,0xa
ADD R13,0x1
CALL 0x0010d530
MOV RDX,qword ptr [0x002b5c00]
CMP dword ptr [RDX + 0x58],R13D
JLE 0x00155f42
MOV RDX,qword ptr [RDX + 0x60]
LEA RAX,[R13 + R13*0x4]
MOV RCX,RBX
MOV RDI,R14
MOV ESI,0x1
LEA RBP,[RDX + RAX*0x8]
MOV EDX,0x4
CALL 0x0010dbe0
MOV R15,qword ptr [RBP]
TEST R15,R15
JZ 0x001562e0
MOV RSI,qword ptr [RBP + 0x10]
TEST RSI,RSI
JZ 0x001562ba
MOV RDI,R15
CALL 0x0010d6a0
TEST EAX,EAX
JZ 0x001562e0
XOR EDX,EDX
MOV RSI,RBX
MOV RDI,R15
CALL 0x001543c0
MOV RCX,RBX
MOV EDX,0x3
MOV ESI,0x1
LEA RDI,[0x15d0cd]
CALL 0x0010dbe0
MOV RAX,qword ptr [RBP + 0x8]
XOR EDX,EDX
MOV RSI,RBX
LEA RDI,[RAX + 0x10]
CALL 0x001543c0
MOV EDI,0x2e
MOV RSI,RBX
CALL 0x0010d530
MOV RDI,qword ptr [RBP + 0x10]
TEST RDI,RDI
JNZ 0x00156220
MOV EDX,dword ptr [RBP + 0x20]
LEA RSI,[0x15d00f]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x0010d6d0
JMP 0x0015622a
MOV RCX,RBX
MOV EDX,0x8
MOV ESI,0x1
LEA RDI,[0x29f2c2]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5c00]
MOV ECX,dword ptr [RAX + 0x40]
TEST ECX,ECX
JLE 0x00155f37
XOR R13D,R13D
LEA R14,[0x16c102]
JMP 0x001563a0
CMP byte ptr [RBP + 0x21],0x0
JNZ 0x00156430
CMP byte ptr [RBP + 0x22],0x0
JNZ 0x00156453
CMP byte ptr [RBP + 0x23],0x0
JNZ 0x00156476
MOV RSI,RBX
MOV EDI,0xa
ADD R13,0x1
CALL 0x0010d530
MOV RAX,qword ptr [0x002b5c00]
CMP dword ptr [RAX + 0x40],R13D
JLE 0x00155f37
MOV RCX,qword ptr [RAX + 0x48]
LEA RDX,[R13 + R13*0x4]
MOV ESI,0x1
MOV RDI,R14
LEA RBP,[RCX + RDX*0x8]
MOV RCX,RBX
MOV EDX,0x4
CALL 0x0010dbe0
MOV RDI,qword ptr [RBP]
XOR EDX,EDX
MOV RSI,RBX
CALL 0x001543c0
MOV RDI,qword ptr [RBP + 0x8]
TEST RDI,RDI
JZ 0x001563ea
MOV RSI,qword ptr [RBP]
CALL 0x0010d6a0
TEST EAX,EAX
JNZ 0x00156498
MOV EDX,dword ptr [RBP + 0x18]
CMP EDX,-0x1
JZ 0x00156403
LEA RSI,[0x29f2cb]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x0010d6d0
CMP byte ptr [RBP + 0x20],0x0
JZ 0x00156360
MOV RCX,RBX
MOV EDX,0x8
MOV ESI,0x1
LEA RDI,[0x29f2d0]
CALL 0x0010dbe0
CMP byte ptr [RBP + 0x21],0x0
JZ 0x0015636a
MOV RCX,RBX
MOV EDX,0x9
MOV ESI,0x1
LEA RDI,[0x29f2d9]
CALL 0x0010dbe0
CMP byte ptr [RBP + 0x22],0x0
JZ 0x00156374
MOV RCX,RBX
MOV EDX,0x7
MOV ESI,0x1
LEA RDI,[0x29f2e3]
CALL 0x0010dbe0
CMP byte ptr [RBP + 0x23],0x0
JZ 0x0015637e
MOV RCX,RBX
MOV EDX,0x5
MOV ESI,0x1
LEA RDI,[0x29f2eb]
CALL 0x0010dbe0
JMP 0x0015637e
MOV RCX,RBX
MOV EDX,0x3
MOV ESI,0x1
LEA RDI,[0x15d0cd]
CALL 0x0010dbe0
MOV RDI,qword ptr [RBP + 0x8]
XOR EDX,EDX
MOV RSI,RBX
CALL 0x001543c0
JMP 0x001563ea
LEA RSI,[0x16e086]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x0010d300
ADD RSP,0x8
MOV RSI,R12
POP RBX
MOV RDI,RAX
POP RBP
XOR EAX,EAX
POP R12
POP R13
POP R14
POP R15
JMP 0x00129380
MOV RCX,RBX
MOV EDX,0x8
MOV ESI,0x1
LEA RDI,[0x29f217]
CALL 0x0010dbe0
MOV RAX,qword ptr [0x002b5f90]
LEA RSI,[0x16c19a]
MOV RDI,RBX
MOV RAX,qword ptr [RAX + 0xf8]
MOV RDX,qword ptr [RAX + 0x100]
XOR EAX,EAX
CALL 0x0010d6d0
JMP 0x00155e18
MOV EDX,0x5
LEA RSI,[0x29f8b0]
XOR EDI,EDI
CALL 0x0010d300
MOV RSI,R12
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00129380
MOV RAX,qword ptr [0x002b5c00]
TEST RAX,RAX
JNZ 0x00155db9
NOP dword ptr [RAX + RAX*0x1]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x29f301]
CALL 0x0010d300
MOV RDI,RBX
MOV RSI,RAX
XOR EAX,EAX
CALL 0x0010d6d0
JMP 0x00155f42
MOV ESI,dword ptr [RAX + 0x24]
CMP ESI,-0x1
JNZ 0x00155fa8
MOV ECX,dword ptr [RAX + 0x2c]
CMP ECX,-0x1
JZ 0x00155f1f
JMP 0x00155f05
(translation_unit "void FUN_00155d80(char *param_1)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}\n\n" (function_definition "void FUN_00155d80(char *param_1)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00155d80(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "__stream = fopen(param_1,"w");" (assignment_expression "__stream = fopen(param_1,"w")" identifier = (call_expression "fopen(param_1,"w")" identifier (argument_list "(param_1,"w")" ( identifier , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,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    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }" { (expression_statement "uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "uVar6 = 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_00129380(uVar6,param_1);" (call_expression "FUN_00129380(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }" if (parenthesized_expression "(DAT_002b5c00 == (long *)0x0)" ( (binary_expression "DAT_002b5c00 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar7 = (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,pcVar7);" (call_expression "fprintf(__stream,pcVar7)" identifier (argument_list "(__stream,pcVar7)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00155f42;" goto statement_identifier ;) })) (if_statement "if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(*DAT_002b5c00 != 0)" ( (binary_expression "*DAT_002b5c00 != 0" (pointer_expression "*DAT_002b5c00" * identifier) != number_literal) )) (compound_statement "{\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }" { (if_statement "if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" if (parenthesized_expression "((int)DAT_002b5c00[1] == 0)" ( (binary_expression "(int)DAT_002b5c00[1] == 0" (cast_expression "(int)DAT_002b5c00[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[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_001543c0(*DAT_002b5c00,__stream,1);" (call_expression "FUN_001543c0(*DAT_002b5c00,__stream,1)" identifier (argument_list "(*DAT_002b5c00,__stream,1)" ( (pointer_expression "*DAT_002b5c00" * identifier) , identifier , number_literal ))) ;) (if_statement "if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }" if (parenthesized_expression "(*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0)" ( (binary_expression "*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0" (pointer_expression "*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" * (cast_expression "(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (binary_expression "*(long *)(DAT_002b5f90 + 0xf8) + 0x100" (pointer_expression "*(long *)(DAT_002b5f90 + 0xf8)" * (cast_expression "(long *)(DAT_002b5f90 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f90 + 0xf8)" ( (binary_expression "DAT_002b5f90 + 0xf8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\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,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));" (call_expression "fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100))" identifier (argument_list "(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100))" ( identifier , (string_literal ""%016lx"" " string_content ") , (pointer_expression "*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" * (cast_expression "(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (binary_expression "*(long *)(DAT_002b5f90 + 0xf8) + 0x100" (pointer_expression "*(long *)(DAT_002b5f90 + 0xf8)" * (cast_expression "(long *)(DAT_002b5f90 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f90 + 0xf8)" ( (binary_expression "DAT_002b5f90 + 0xf8" 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_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(DAT_002b5c00[3] != 0)" ( (binary_expression "DAT_002b5c00[3] != 0" (subscript_expression "DAT_002b5c00[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__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 "FUN_001543c0(DAT_002b5c00[3],__stream,1);" (call_expression "FUN_001543c0(DAT_002b5c00[3],__stream,1)" identifier (argument_list "(DAT_002b5c00[3],__stream,1)" ( (subscript_expression "DAT_002b5c00[3]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x6c) == -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x6c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x6c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x6c)" ( (binary_expression "(long)DAT_002b5c00 + 0x6c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }" { (if_statement "if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }" if (parenthesized_expression "((int)DAT_002b5c00[0xd] != -1)" ( (binary_expression "(int)DAT_002b5c00[0xd] != -1" (cast_expression "(int)DAT_002b5c00[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xd]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n      fprintf(__stream,"VERSION %d\n");\n    }" { (expression_statement "fprintf(__stream,"VERSION %d\n");" (call_expression "fprintf(__stream,"VERSION %d\n")" identifier (argument_list "(__stream,"VERSION %d\n")" ( identifier , (string_literal ""VERSION %d\n"" " string_content escape_sequence ") ))) ;) })) }) (else_clause "else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" else (compound_statement "{\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" { (expression_statement "fprintf(__stream,"VERSION %d.%d\n");" (call_expression "fprintf(__stream,"VERSION %d.%d\n")" identifier (argument_list "(__stream,"VERSION %d.%d\n")" ( identifier , (string_literal ""VERSION %d.%d\n"" " string_content escape_sequence ") ))) ;) }))) (if_statement "if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" if (parenthesized_expression "(((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1))" ( (binary_expression "((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)" (parenthesized_expression "((int)DAT_002b5c00[4] == -1)" ( (binary_expression "(int)DAT_002b5c00[4] == -1" (cast_expression "(int)DAT_002b5c00[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[4]" identifier [ number_literal ])) == number_literal) )) && (parenthesized_expression "((int)DAT_002b5c00[5] == -1)" ( (binary_expression "(int)DAT_002b5c00[5] == -1" (cast_expression "(int)DAT_002b5c00[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[5]" identifier [ number_literal ])) == number_literal) ))) )) (compound_statement "{\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }" { (expression_statement "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);" (assignment_expression "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24)" identifier = (pointer_expression "*(uint *)((long)DAT_002b5c00 + 0x24)" * (cast_expression "(uint *)((long)DAT_002b5c00 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x24)" ( (binary_expression "(long)DAT_002b5c00 + 0x24" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }" { (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) == -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" ( (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00155f1f;" goto statement_identifier ;)) (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" else (compound_statement "{\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" { (labeled_statement "LAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);" statement_identifier : (expression_statement "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);" (call_expression "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9)" identifier (argument_list "(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9)" ( identifier , (string_literal ""STACKSIZE 0x%x,0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (expression_statement "uVar9 = *(uint *)(DAT_002b5c00 + 5);" (assignment_expression "uVar9 = *(uint *)(DAT_002b5c00 + 5)" identifier = (pointer_expression "*(uint *)(DAT_002b5c00 + 5)" * (cast_expression "(uint *)(DAT_002b5c00 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00 + 5)" ( (binary_expression "DAT_002b5c00 + 5" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) == -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" ( (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00155fd1;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);" statement_identifier : (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9)" identifier (argument_list "(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9)" ( identifier , (string_literal ""HEAPSIZE 0x%x,0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (labeled_statement "LAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];" statement_identifier : (expression_statement "iVar5 = (int)DAT_002b5c00[6];" (assignment_expression "iVar5 = (int)DAT_002b5c00[6]" identifier = (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ]))) ;)) }) (else_clause "else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" else (compound_statement "{\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" { (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) (expression_statement "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);" (assignment_expression "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24)" identifier = (pointer_expression "*(uint *)((long)DAT_002b5c00 + 0x24)" * (cast_expression "(uint *)((long)DAT_002b5c00 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x24)" ( (binary_expression "(long)DAT_002b5c00 + 0x24" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(DAT_002b5c00 + 4);" (assignment_expression "uVar4 = *(uint *)(DAT_002b5c00 + 4)" identifier = (pointer_expression "*(uint *)(DAT_002b5c00 + 4)" * (cast_expression "(uint *)(DAT_002b5c00 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00 + 4)" ( (binary_expression "DAT_002b5c00 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 != 0xffffffff) goto LAB_00155fa8;" if (parenthesized_expression "(uVar9 != 0xffffffff)" ( (binary_expression "uVar9 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_00155fa8;" goto statement_identifier ;)) (if_statement "if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" if (parenthesized_expression "(uVar4 != 0xffffffff)" ( (binary_expression "uVar4 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" { (expression_statement "fprintf(__stream,"STACKSIZE 0x%x\n");" (call_expression "fprintf(__stream,"STACKSIZE 0x%x\n")" identifier (argument_list "(__stream,"STACKSIZE 0x%x\n")" ( identifier , (string_literal ""STACKSIZE 0x%x\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar9 = *(uint *)(DAT_002b5c00 + 5);" (assignment_expression "uVar9 = *(uint *)(DAT_002b5c00 + 5)" identifier = (pointer_expression "*(uint *)(DAT_002b5c00 + 5)" * (cast_expression "(uint *)(DAT_002b5c00 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00 + 5)" ( (binary_expression "DAT_002b5c00 + 5" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) != -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) != -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" ( (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00155f05;" goto statement_identifier ;)) (labeled_statement "LAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;" statement_identifier : (if_statement "if (uVar9 == 0xffffffff) goto LAB_00155f1f;" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00155f1f;" goto statement_identifier ;))) (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9)" identifier (argument_list "(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9)" ( identifier , (string_literal ""HEAPSIZE 0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "iVar5 = (int)DAT_002b5c00[6];" (assignment_expression "iVar5 = (int)DAT_002b5c00[6]" identifier = (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ]))) ;) }))) (if_statement "if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }" if (parenthesized_expression "((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6]))" ( (binary_expression "(0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])" (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])" ( (comma_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6]" (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 < (int)DAT_002b5c00[6]" number_literal < (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);" do (compound_statement "{\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "lVar2 = lVar10 * 0x18;" (assignment_expression "lVar2 = lVar10 * 0x18" identifier = (binary_expression "lVar10 * 0x18" identifier * number_literal)) ;) (expression_statement "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);" (call_expression "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0)" identifier (argument_list "(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0)" ( (pointer_expression "*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18)" * (cast_expression "(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[7] + lVar10 * 0x18)" ( (binary_expression "DAT_002b5c00[7] + lVar10 * 0x18" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + (binary_expression "lVar10 * 0x18" identifier * number_literal)) )))) , identifier , number_literal ))) ;) (expression_statement "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }" if (parenthesized_expression "(*(long *)(lVar8 + 8) != 0)" ( (binary_expression "*(long *)(lVar8 + 8) != 0" (pointer_expression "*(long *)(lVar8 + 8)" * (cast_expression "(long *)(lVar8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 8)" ( (binary_expression "lVar8 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\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 "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);" (call_expression "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0)" identifier (argument_list "(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0)" ( (pointer_expression "*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2)" * (cast_expression "(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[7] + 8 + lVar2)" ( (binary_expression "DAT_002b5c00[7] + 8 + lVar2" (binary_expression "DAT_002b5c00[7] + 8" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + number_literal) + identifier) )))) , identifier , number_literal ))) ;) (expression_statement "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) })) (if_statement "if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }" if (parenthesized_expression "(*(char *)(lVar8 + 0x10) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x10) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x10)" * (cast_expression "(char *)(lVar8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }" { (if_statement "if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;" if (parenthesized_expression "(*(char *)(lVar8 + 0x11) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x11) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x11)" * (cast_expression "(char *)(lVar8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x11)" ( (binary_expression "lVar8 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015604a;" goto statement_identifier ;)) (labeled_statement "LAB_00156154:\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 "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;" if (parenthesized_expression "(*(char *)(lVar8 + 0x12) != '\0')" ( (binary_expression "*(char *)(lVar8 + 0x12) != '\0'" (pointer_expression "*(char *)(lVar8 + 0x12)" * (cast_expression "(char *)(lVar8 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x12)" ( (binary_expression "lVar8 + 0x12" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156188;" goto statement_identifier ;)) (labeled_statement "LAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);" statement_identifier : (expression_statement "cVar3 = *(char *)(lVar8 + 0x13);" (assignment_expression "cVar3 = *(char *)(lVar8 + 0x13)" identifier = (pointer_expression "*(char *)(lVar8 + 0x13)" * (cast_expression "(char *)(lVar8 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x13)" ( (binary_expression "lVar8 + 0x13" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }" else (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\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 "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;" if (parenthesized_expression "(*(char *)(lVar8 + 0x11) != '\0')" ( (binary_expression "*(char *)(lVar8 + 0x11) != '\0'" (pointer_expression "*(char *)(lVar8 + 0x11)" * (cast_expression "(char *)(lVar8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x11)" ( (binary_expression "lVar8 + 0x11" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156154;" goto statement_identifier ;)) (labeled_statement "LAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;" statement_identifier : (if_statement "if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;" if (parenthesized_expression "(*(char *)(lVar8 + 0x12) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x12) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x12)" * (cast_expression "(char *)(lVar8 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x12)" ( (binary_expression "lVar8 + 0x12" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156054;" goto statement_identifier ;))) (labeled_statement "LAB_00156188:\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 "cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);" (assignment_expression "cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" identifier = (pointer_expression "*(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" * (cast_expression "(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + DAT_002b5c00[7] + 0x13)" ( (binary_expression "lVar2 + DAT_002b5c00[7] + 0x13" (binary_expression "lVar2 + DAT_002b5c00[7]" identifier + (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ])) + number_literal) ))))) ;) }))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\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 "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 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 "((int)lVar10 < (int)DAT_002b5c00[6])" ( (binary_expression "(int)lVar10 < (int)DAT_002b5c00[6]" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ]))) )) ;) })) (if_statement "if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }" if (parenthesized_expression "((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8]))" ( (binary_expression "(0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])" (parenthesized_expression "(0 < (int)DAT_002b5c00[8])" ( (binary_expression "0 < (int)DAT_002b5c00[8]" number_literal < (cast_expression "(int)DAT_002b5c00[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[8]" identifier [ number_literal ]))) )) && (parenthesized_expression "(fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])" ( (comma_expression "fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8]" (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 < (int)DAT_002b5c00[8]" number_literal < (cast_expression "(int)DAT_002b5c00[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[8]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);" do (compound_statement "{\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);" (assignment_expression "puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28)" identifier = (cast_expression "(undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[9] + lVar10 * 0x28)" ( (binary_expression "DAT_002b5c00[9] + lVar10 * 0x28" (subscript_expression "DAT_002b5c00[9]" identifier [ number_literal ]) + (binary_expression "lVar10 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001543c0(*puVar1,__stream,0);" (call_expression "FUN_001543c0(*puVar1,__stream,0)" identifier (argument_list "(*puVar1,__stream,0)" ( (pointer_expression "*puVar1" * identifier) , identifier , number_literal ))) ;) (if_statement "if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }" if (parenthesized_expression "(((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0))" ( (binary_expression "((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)" (parenthesized_expression "((char *)puVar1[1] != (char *)0x0)" ( (binary_expression "(char *)puVar1[1] != (char *)0x0" (cast_expression "(char *)puVar1[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[1]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1)" identifier = (call_expression "strcmp((char *)puVar1[1],(char *)*puVar1)" identifier (argument_list "((char *)puVar1[1],(char *)*puVar1)" ( (cast_expression "(char *)puVar1[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[1]" identifier [ number_literal ])) , (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }" { (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" identifier (argument_list "(&DAT_0015d0cd,1,3,__stream)" ( (pointer_expression "&DAT_0015d0cd" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001543c0(puVar1[1],__stream,0);" (call_expression "FUN_001543c0(puVar1[1],__stream,0)" identifier (argument_list "(puVar1[1],__stream,0)" ( (subscript_expression "puVar1[1]" identifier [ number_literal ]) , identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }" if (parenthesized_expression "(*(int *)(puVar1 + 3) != -1)" ( (binary_expression "*(int *)(puVar1 + 3) != -1" (pointer_expression "*(int *)(puVar1 + 3)" * (cast_expression "(int *)(puVar1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 3)" ( (binary_expression "puVar1 + 3" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        fprintf(__stream," @%d");\n      }" { (expression_statement "fprintf(__stream," @%d");" (call_expression "fprintf(__stream," @%d")" identifier (argument_list "(__stream," @%d")" ( identifier , (string_literal "" @%d"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" if (parenthesized_expression "(*(char *)(puVar1 + 4) == '\0')" ( (binary_expression "*(char *)(puVar1 + 4) == '\0'" (pointer_expression "*(char *)(puVar1 + 4)" * (cast_expression "(char *)(puVar1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" { (if_statement "if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x21) == '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x21) == '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x21)" * (cast_expression "(char *)((long)puVar1 + 0x21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x21)" ( (binary_expression "(long)puVar1 + 0x21" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015636a;" goto statement_identifier ;)) (labeled_statement "LAB_00156430:\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 *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x22) != '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x22) != '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x22)" * (cast_expression "(char *)((long)puVar1 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x22)" ( (binary_expression "(long)puVar1 + 0x22" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156453;" goto statement_identifier ;)) (labeled_statement "LAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);" statement_identifier : (expression_statement "cVar3 = *(char *)((long)puVar1 + 0x23);" (assignment_expression "cVar3 = *(char *)((long)puVar1 + 0x23)" identifier = (pointer_expression "*(char *)((long)puVar1 + 0x23)" * (cast_expression "(char *)((long)puVar1 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x23)" ( (binary_expression "(long)puVar1 + 0x23" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" else (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\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 *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x21) != '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x21) != '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x21)" * (cast_expression "(char *)((long)puVar1 + 0x21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x21)" ( (binary_expression "(long)puVar1 + 0x21" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156430;" goto statement_identifier ;)) (labeled_statement "LAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;" statement_identifier : (if_statement "if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x22) == '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x22) == '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x22)" * (cast_expression "(char *)((long)puVar1 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x22)" ( (binary_expression "(long)puVar1 + 0x22" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156374;" goto statement_identifier ;))) (labeled_statement "LAB_00156453:\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 "cVar3 = *(char *)((long)puVar1 + 0x23);" (assignment_expression "cVar3 = *(char *)((long)puVar1 + 0x23)" identifier = (pointer_expression "*(char *)((long)puVar1 + 0x23)" * (cast_expression "(char *)((long)puVar1 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x23)" ( (binary_expression "(long)puVar1 + 0x23" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\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 "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 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 "((int)lVar10 < (int)DAT_002b5c00[8])" ( (binary_expression "(int)lVar10 < (int)DAT_002b5c00[8]" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)DAT_002b5c00[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[8]" identifier [ number_literal ]))) )) ;) })) (if_statement "if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }" if (parenthesized_expression "((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb]))" ( (binary_expression "(0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])" (parenthesized_expression "(0 < (int)DAT_002b5c00[0xb])" ( (binary_expression "0 < (int)DAT_002b5c00[0xb]" number_literal < (cast_expression "(int)DAT_002b5c00[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xb]" identifier [ number_literal ]))) )) && (parenthesized_expression "(fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])" ( (comma_expression "fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb]" (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 < (int)DAT_002b5c00[0xb]" number_literal < (cast_expression "(int)DAT_002b5c00[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xb]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);" do (compound_statement "{\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);" (assignment_expression "puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28)" identifier = (cast_expression "(undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[0xc] + lVar10 * 0x28)" ( (binary_expression "DAT_002b5c00[0xc] + lVar10 * 0x28" (subscript_expression "DAT_002b5c00[0xc]" identifier [ number_literal ]) + (binary_expression "lVar10 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar7 = (char *)*puVar1;" (assignment_expression "pcVar7 = (char *)*puVar1" identifier = (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" if (parenthesized_expression "((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0))))" ( (binary_expression "(pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))" ( (parenthesized_expression "((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0))" ( (binary_expression "(char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)" (binary_expression "(char *)puVar1[2] == (char *)0x0" (cast_expression "(char *)puVar1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pcVar7,(char *)puVar1[2])" identifier = (call_expression "strcmp(pcVar7,(char *)puVar1[2])" identifier (argument_list "(pcVar7,(char *)puVar1[2])" ( identifier , (cast_expression "(char *)puVar1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" { (expression_statement "FUN_001543c0(pcVar7,__stream,0);" (call_expression "FUN_001543c0(pcVar7,__stream,0)" identifier (argument_list "(pcVar7,__stream,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" identifier (argument_list "(&DAT_0015d0cd,1,3,__stream)" ( (pointer_expression "&DAT_0015d0cd" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "FUN_001543c0(puVar1[1] + 0x10,__stream,0);" (call_expression "FUN_001543c0(puVar1[1] + 0x10,__stream,0)" identifier (argument_list "(puVar1[1] + 0x10,__stream,0)" ( (binary_expression "puVar1[1] + 0x10" (subscript_expression "puVar1[1]" identifier [ number_literal ]) + number_literal) , identifier , number_literal ))) ;) (expression_statement "fputc(0x2e,__stream);" (call_expression "fputc(0x2e,__stream)" identifier (argument_list "(0x2e,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" if (parenthesized_expression "(puVar1[2] == 0)" ( (binary_expression "puVar1[2] == 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }" { (expression_statement "fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));" (call_expression "fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4))" identifier (argument_list "(__stream,"%d",(ulong)*(uint *)(puVar1 + 4))" ( identifier , (string_literal ""%d"" " string_content ") , (binary_expression "(ulong)*(uint *)(puVar1 + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(puVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" else (compound_statement "{\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" { (expression_statement "FUN_001543c0(puVar1[2],__stream,0);" (call_expression "FUN_001543c0(puVar1[2],__stream,0)" identifier (argument_list "(puVar1[2],__stream,0)" ( (subscript_expression "puVar1[2]" identifier [ number_literal ]) , identifier , number_literal ))) ;) }))) (if_statement "if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }" if (parenthesized_expression "(puVar1[3] != 0)" ( (binary_expression "puVar1[3] != 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }" { (expression_statement "fwrite(&DAT_0029f2fc,1,4,__stream);" (call_expression "fwrite(&DAT_0029f2fc,1,4,__stream)" identifier (argument_list "(&DAT_0029f2fc,1,4,__stream)" ( (pointer_expression "&DAT_0029f2fc" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001543c0(puVar1[3],__stream,0);" (call_expression "FUN_001543c0(puVar1[3],__stream,0)" identifier (argument_list "(puVar1[3],__stream,0)" ( (subscript_expression "puVar1[3]" identifier [ number_literal ]) , identifier , number_literal ))) ;) })) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 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 "((int)lVar10 < (int)DAT_002b5c00[0xb])" ( (binary_expression "(int)lVar10 < (int)DAT_002b5c00[0xb]" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)DAT_002b5c00[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xb]" identifier [ number_literal ]))) )) ;) })) (labeled_statement "LAB_00155f42:\n  iVar5 = fclose(__stream);" statement_identifier : (expression_statement "iVar5 = fclose(__stream);" (assignment_expression "iVar5 = fclose(__stream)" identifier = (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (if_statement "if (iVar5 != -1) {\n    return;\n  }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "uVar6 = 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_00129380(uVar6,param_1);" (call_expression "FUN_00129380(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void pe_dll_generate_def_file(char *pe_out_def_filename)\n\n{\n  def_file_import *pdVar1;\n  def_file_export *pdVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  def_file_section *pdVar6;\n  char *pcVar7;\n  uint uVar8;\n  long lVar9;\n  \n  __stream = fopen(pe_out_def_filename,"w");\n  if (__stream == (FILE *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar7,pe_out_def_filename);\n  }\n  if (pe_def_file == (def_file *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\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 ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);\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      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = 0xffffffff;\n    if (uVar8 == 0xffffffff) {\n      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;\n      uVar8 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);\nLAB_00155f1f:\n    iVar5 = pe_def_file->num_section_defs;\n  }\n  else {\n    fputc(10,__stream);\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = pe_def_file->stack_reserve;\n    if (uVar8 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar8 = pe_def_file->heap_reserve;\n    if (pe_def_file->heap_commit != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar8 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);\n    iVar5 = pe_def_file->num_section_defs;\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    lVar9 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);\n      pdVar6 = pe_def_file->section_defs + lVar9;\n      if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }\n      if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar2 = pe_def_file->exports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pdVar2->name,(FILE *)__stream,0);\n      if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = pdVar1->internal_name;\n      if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,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",(ulong)(uint)pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_imports);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  pcVar7 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);\n  einfo(pcVar7,pe_out_def_filename);\n  return;\n}\n\n" (function_definition "void pe_dll_generate_def_file(char *pe_out_def_filename)\n\n{\n  def_file_import *pdVar1;\n  def_file_export *pdVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  def_file_section *pdVar6;\n  char *pcVar7;\n  uint uVar8;\n  long lVar9;\n  \n  __stream = fopen(pe_out_def_filename,"w");\n  if (__stream == (FILE *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar7,pe_out_def_filename);\n  }\n  if (pe_def_file == (def_file *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\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 ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);\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      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = 0xffffffff;\n    if (uVar8 == 0xffffffff) {\n      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;\n      uVar8 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);\nLAB_00155f1f:\n    iVar5 = pe_def_file->num_section_defs;\n  }\n  else {\n    fputc(10,__stream);\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = pe_def_file->stack_reserve;\n    if (uVar8 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar8 = pe_def_file->heap_reserve;\n    if (pe_def_file->heap_commit != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar8 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);\n    iVar5 = pe_def_file->num_section_defs;\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    lVar9 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);\n      pdVar6 = pe_def_file->section_defs + lVar9;\n      if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }\n      if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar2 = pe_def_file->exports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pdVar2->name,(FILE *)__stream,0);\n      if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = pdVar1->internal_name;\n      if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,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",(ulong)(uint)pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_imports);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  pcVar7 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);\n  einfo(pcVar7,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  def_file_export *pdVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  def_file_section *pdVar6;\n  char *pcVar7;\n  uint uVar8;\n  long lVar9;\n  \n  __stream = fopen(pe_out_def_filename,"w");\n  if (__stream == (FILE *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar7,pe_out_def_filename);\n  }\n  if (pe_def_file == (def_file *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\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 ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);\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      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = 0xffffffff;\n    if (uVar8 == 0xffffffff) {\n      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;\n      uVar8 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);\nLAB_00155f1f:\n    iVar5 = pe_def_file->num_section_defs;\n  }\n  else {\n    fputc(10,__stream);\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = pe_def_file->stack_reserve;\n    if (uVar8 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar8 = pe_def_file->heap_reserve;\n    if (pe_def_file->heap_commit != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar8 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);\n    iVar5 = pe_def_file->num_section_defs;\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    lVar9 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);\n      pdVar6 = pe_def_file->section_defs + lVar9;\n      if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }\n      if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar2 = pe_def_file->exports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pdVar2->name,(FILE *)__stream,0);\n      if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = pdVar1->internal_name;\n      if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,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",(ulong)(uint)pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_imports);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  pcVar7 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);\n  einfo(pcVar7,pe_out_def_filename);\n  return;\n}" { (declaration "def_file_import *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "def_file_export *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "def_file_section *pdVar6;" type_identifier (pointer_declarator "*pdVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (expression_statement "__stream = fopen(pe_out_def_filename,"w");" (assignment_expression "__stream = fopen(pe_out_def_filename,"w")" identifier = (call_expression "fopen(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    pcVar7 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar7,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    pcVar7 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    einfo(pcVar7,pe_out_def_filename);\n  }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "pcVar7 = (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(pcVar7,pe_out_def_filename);" (call_expression "einfo(pcVar7,pe_out_def_filename)" identifier (argument_list "(pcVar7,pe_out_def_filename)" ( identifier , identifier ))) ;) })) (if_statement "if (pe_def_file == (def_file *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\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    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar7 = (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,pcVar7);" (call_expression "fprintf(__stream,pcVar7)" identifier (argument_list "(__stream,pcVar7)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00155f42;" 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 ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);\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 ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);\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 ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);\n    }" if (parenthesized_expression "((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0)" ( (binary_expression "(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (asection **)0x0" (field_expression "(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects" (parenthesized_expression "(((link_info.output_bfd)->tdata).xcoff_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).xcoff_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) != (cast_expression "(asection **)0x0" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);\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,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);" (call_expression "fprintf(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects)" identifier (argument_list "(__stream,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects)" ( identifier , (string_literal ""%016lx"" " string_content ") , (field_expression "(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects" (parenthesized_expression "(((link_info.output_bfd)->tdata).xcoff_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).xcoff_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) ))) ;) })) (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      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\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      fprintf(__stream,"VERSION %d\n");\n    }\n  }" { (if_statement "if (pe_def_file->version_major != -1) {\n      fprintf(__stream,"VERSION %d\n");\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      fprintf(__stream,"VERSION %d\n");\n    }" { (expression_statement "fprintf(__stream,"VERSION %d\n");" (call_expression "fprintf(__stream,"VERSION %d\n")" identifier (argument_list "(__stream,"VERSION %d\n")" ( identifier , (string_literal ""VERSION %d\n"" " string_content escape_sequence ") ))) ;) })) }) (else_clause "else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" else (compound_statement "{\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" { (expression_statement "fprintf(__stream,"VERSION %d.%d\n");" (call_expression "fprintf(__stream,"VERSION %d.%d\n")" identifier (argument_list "(__stream,"VERSION %d.%d\n")" ( identifier , (string_literal ""VERSION %d.%d\n"" " string_content escape_sequence ") ))) ;) }))) (if_statement "if ((pe_def_file->stack_reserve == -1) && (pe_def_file->heap_reserve == -1)) {\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = 0xffffffff;\n    if (uVar8 == 0xffffffff) {\n      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;\n      uVar8 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);\nLAB_00155f1f:\n    iVar5 = pe_def_file->num_section_defs;\n  }\n  else {\n    fputc(10,__stream);\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = pe_def_file->stack_reserve;\n    if (uVar8 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar8 = pe_def_file->heap_reserve;\n    if (pe_def_file->heap_commit != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar8 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);\n    iVar5 = pe_def_file->num_section_defs;\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    uVar8 = pe_def_file->stack_commit;\n    uVar4 = 0xffffffff;\n    if (uVar8 == 0xffffffff) {\n      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;\n      uVar8 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);\nLAB_00155f1f:\n    iVar5 = pe_def_file->num_section_defs;\n  }" { (expression_statement "uVar8 = pe_def_file->stack_commit;" (assignment_expression "uVar8 = pe_def_file->stack_commit" identifier = (field_expression "pe_def_file->stack_commit" identifier -> field_identifier)) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (uVar8 == 0xffffffff) {\n      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;\n      uVar8 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;\n      uVar8 = 0xffffffff;\n    }" { (if_statement "if (pe_def_file->heap_commit == -1) goto LAB_00155f1f;" 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) )) (goto_statement "goto LAB_00155f1f;" goto statement_identifier ;)) (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }" else (compound_statement "{\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);\n      uVar8 = pe_def_file->heap_reserve;\n      if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;\n    }" { (labeled_statement "LAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);" statement_identifier : (expression_statement "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8);" (call_expression "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8)" identifier (argument_list "(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar8)" ( identifier , (string_literal ""STACKSIZE 0x%x,0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (expression_statement "uVar8 = pe_def_file->heap_reserve;" (assignment_expression "uVar8 = pe_def_file->heap_reserve" identifier = (field_expression "pe_def_file->heap_reserve" identifier -> field_identifier)) ;) (if_statement "if (pe_def_file->heap_commit == -1) goto LAB_00155fd1;" 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) )) (goto_statement "goto LAB_00155fd1;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);" statement_identifier : (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8)" identifier (argument_list "(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar8)" ( identifier , (string_literal ""HEAPSIZE 0x%x,0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (labeled_statement "LAB_00155f1f:\n    iVar5 = pe_def_file->num_section_defs;" statement_identifier : (expression_statement "iVar5 = pe_def_file->num_section_defs;" (assignment_expression "iVar5 = pe_def_file->num_section_defs" identifier = (field_expression "pe_def_file->num_section_defs" identifier -> field_identifier)) ;)) }) (else_clause "else {\n    fputc(10,__stream);\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = pe_def_file->stack_reserve;\n    if (uVar8 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar8 = pe_def_file->heap_reserve;\n    if (pe_def_file->heap_commit != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar8 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);\n    iVar5 = pe_def_file->num_section_defs;\n  }" else (compound_statement "{\n    fputc(10,__stream);\n    uVar8 = pe_def_file->stack_commit;\n    uVar4 = pe_def_file->stack_reserve;\n    if (uVar8 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar8 = pe_def_file->heap_reserve;\n    if (pe_def_file->heap_commit != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar8 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);\n    iVar5 = pe_def_file->num_section_defs;\n  }" { (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) (expression_statement "uVar8 = pe_def_file->stack_commit;" (assignment_expression "uVar8 = pe_def_file->stack_commit" identifier = (field_expression "pe_def_file->stack_commit" identifier -> field_identifier)) ;) (expression_statement "uVar4 = pe_def_file->stack_reserve;" (assignment_expression "uVar4 = pe_def_file->stack_reserve" identifier = (field_expression "pe_def_file->stack_reserve" identifier -> field_identifier)) ;) (if_statement "if (uVar8 != 0xffffffff) goto LAB_00155fa8;" if (parenthesized_expression "(uVar8 != 0xffffffff)" ( (binary_expression "uVar8 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_00155fa8;" goto statement_identifier ;)) (if_statement "if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" if (parenthesized_expression "(uVar4 != 0xffffffff)" ( (binary_expression "uVar4 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" { (expression_statement "fprintf(__stream,"STACKSIZE 0x%x\n");" (call_expression "fprintf(__stream,"STACKSIZE 0x%x\n")" identifier (argument_list "(__stream,"STACKSIZE 0x%x\n")" ( identifier , (string_literal ""STACKSIZE 0x%x\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar8 = pe_def_file->heap_reserve;" (assignment_expression "uVar8 = pe_def_file->heap_reserve" identifier = (field_expression "pe_def_file->heap_reserve" identifier -> field_identifier)) ;) (if_statement "if (pe_def_file->heap_commit != -1) goto LAB_00155f05;" 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) )) (goto_statement "goto LAB_00155f05;" goto statement_identifier ;)) (labeled_statement "LAB_00155fd1:\n    if (uVar8 == 0xffffffff) goto LAB_00155f1f;" statement_identifier : (if_statement "if (uVar8 == 0xffffffff) goto LAB_00155f1f;" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00155f1f;" goto statement_identifier ;))) (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8)" identifier (argument_list "(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar8)" ( identifier , (string_literal ""HEAPSIZE 0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "iVar5 = pe_def_file->num_section_defs;" (assignment_expression "iVar5 = pe_def_file->num_section_defs" identifier = (field_expression "pe_def_file->num_section_defs" identifier -> field_identifier)) ;) }))) (if_statement "if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)) {\n    lVar9 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);\n      pdVar6 = pe_def_file->section_defs + lVar9;\n      if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }\n      if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_section_defs);\n  }" if (parenthesized_expression "((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs))" ( (binary_expression "(0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < pe_def_file->num_section_defs)" (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < 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    lVar9 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);\n      pdVar6 = pe_def_file->section_defs + lVar9;\n      if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }\n      if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_section_defs);\n  }" { (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);\n      pdVar6 = pe_def_file->section_defs + lVar9;\n      if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }\n      if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_section_defs);" do (compound_statement "{\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);\n      pdVar6 = pe_def_file->section_defs + lVar9;\n      if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }\n      if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0);" (call_expression "quoteput(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0)" identifier (argument_list "(pe_def_file->section_defs[lVar9].name,(FILE *)__stream,0)" ( (field_expression "pe_def_file->section_defs[lVar9].name" (subscript_expression "pe_def_file->section_defs[lVar9]" (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 "pdVar6 = pe_def_file->section_defs + lVar9;" (assignment_expression "pdVar6 = pe_def_file->section_defs + lVar9" identifier = (binary_expression "pe_def_file->section_defs + lVar9" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) (if_statement "if (pdVar6->class != (char *)0x0) {\n        fwrite(" CLASS ",1,7,__stream);\n        quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n      }" if (parenthesized_expression "(pdVar6->class != (char *)0x0)" ( (binary_expression "pdVar6->class != (char *)0x0" (field_expression "pdVar6->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[lVar9].class,(FILE *)__stream,0);\n        pdVar6 = pe_def_file->section_defs + lVar9;\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[lVar9].class,(FILE *)__stream,0);" (call_expression "quoteput(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0)" identifier (argument_list "(pe_def_file->section_defs[lVar9].class,(FILE *)__stream,0)" ( (field_expression "pe_def_file->section_defs[lVar9].class" (subscript_expression "pe_def_file->section_defs[lVar9]" (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 "pdVar6 = pe_def_file->section_defs + lVar9;" (assignment_expression "pdVar6 = pe_def_file->section_defs + lVar9" identifier = (binary_expression "pe_def_file->section_defs + lVar9" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) })) (if_statement "if (pdVar6->flag_read == '\0') {\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }" if (parenthesized_expression "(pdVar6->flag_read == '\0')" ( (binary_expression "pdVar6->flag_read == '\0'" (field_expression "pdVar6->flag_read" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (pdVar6->flag_write == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_execute != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = pdVar6->flag_shared;\n      }" { (if_statement "if (pdVar6->flag_write == '\0') goto LAB_0015604a;" if (parenthesized_expression "(pdVar6->flag_write == '\0')" ( (binary_expression "pdVar6->flag_write == '\0'" (field_expression "pdVar6->flag_write" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015604a;" goto statement_identifier ;)) (labeled_statement "LAB_00156154:\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 "pdVar6 = pe_def_file->section_defs + lVar9;" (assignment_expression "pdVar6 = pe_def_file->section_defs + lVar9" identifier = (binary_expression "pe_def_file->section_defs + lVar9" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) (if_statement "if (pdVar6->flag_execute != '\0') goto LAB_00156188;" if (parenthesized_expression "(pdVar6->flag_execute != '\0')" ( (binary_expression "pdVar6->flag_execute != '\0'" (field_expression "pdVar6->flag_execute" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156188;" goto statement_identifier ;)) (labeled_statement "LAB_00156054:\n        cVar3 = pdVar6->flag_shared;" statement_identifier : (expression_statement "cVar3 = pdVar6->flag_shared;" (assignment_expression "cVar3 = pdVar6->flag_shared" identifier = (field_expression "pdVar6->flag_shared" identifier -> field_identifier)) ;)) }) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].flag_shared;\n      }" else (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        pdVar6 = pe_def_file->section_defs + lVar9;\n        if (pdVar6->flag_write != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = pe_def_file->section_defs[lVar9].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 "pdVar6 = pe_def_file->section_defs + lVar9;" (assignment_expression "pdVar6 = pe_def_file->section_defs + lVar9" identifier = (binary_expression "pe_def_file->section_defs + lVar9" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) + identifier)) ;) (if_statement "if (pdVar6->flag_write != '\0') goto LAB_00156154;" if (parenthesized_expression "(pdVar6->flag_write != '\0')" ( (binary_expression "pdVar6->flag_write != '\0'" (field_expression "pdVar6->flag_write" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156154;" goto statement_identifier ;)) (labeled_statement "LAB_0015604a:\n        if (pdVar6->flag_execute == '\0') goto LAB_00156054;" statement_identifier : (if_statement "if (pdVar6->flag_execute == '\0') goto LAB_00156054;" if (parenthesized_expression "(pdVar6->flag_execute == '\0')" ( (binary_expression "pdVar6->flag_execute == '\0'" (field_expression "pdVar6->flag_execute" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156054;" goto statement_identifier ;))) (labeled_statement "LAB_00156188:\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 "cVar3 = pe_def_file->section_defs[lVar9].flag_shared;" (assignment_expression "cVar3 = pe_def_file->section_defs[lVar9].flag_shared" identifier = (field_expression "pe_def_file->section_defs[lVar9].flag_shared" (subscript_expression "pe_def_file->section_defs[lVar9]" (field_expression "pe_def_file->section_defs" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) }))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\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 "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 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 "((int)lVar9 < pe_def_file->num_section_defs)" ( (binary_expression "(int)lVar9 < pe_def_file->num_section_defs" (cast_expression "(int)lVar9" ( (type_descriptor "int" primitive_type) ) 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    lVar9 = 0;\n    do {\n      pdVar2 = pe_def_file->exports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pdVar2->name,(FILE *)__stream,0);\n      if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar2 = pe_def_file->exports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pdVar2->name,(FILE *)__stream,0);\n      if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_exports);\n  }" { (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      pdVar2 = pe_def_file->exports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pdVar2->name,(FILE *)__stream,0);\n      if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_exports);" do (compound_statement "{\n      pdVar2 = pe_def_file->exports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      quoteput(pdVar2->name,(FILE *)__stream,0);\n      if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }\n      if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "pdVar2 = pe_def_file->exports + lVar9;" (assignment_expression "pdVar2 = pe_def_file->exports + lVar9" identifier = (binary_expression "pe_def_file->exports + lVar9" (field_expression "pe_def_file->exports" identifier -> field_identifier) + identifier)) ;) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pdVar2->name,(FILE *)__stream,0);" (call_expression "quoteput(pdVar2->name,(FILE *)__stream,0)" identifier (argument_list "(pdVar2->name,(FILE *)__stream,0)" ( (field_expression "pdVar2->name" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (if_statement "if ((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }" if (parenthesized_expression "((pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0))" ( (binary_expression "(pdVar2->internal_name != (char *)0x0) &&\n         (iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)" (parenthesized_expression "(pdVar2->internal_name != (char *)0x0)" ( (binary_expression "pdVar2->internal_name != (char *)0x0" (field_expression "pdVar2->internal_name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(pdVar2->internal_name,pdVar2->name), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pdVar2->internal_name,pdVar2->name)" identifier = (call_expression "strcmp(pdVar2->internal_name,pdVar2->name)" identifier (argument_list "(pdVar2->internal_name,pdVar2->name)" ( (field_expression "pdVar2->internal_name" identifier -> field_identifier) , (field_expression "pdVar2->name" identifier -> field_identifier) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        quoteput(pdVar2->internal_name,(FILE *)__stream,0);\n      }" { (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" identifier (argument_list "(&DAT_0015d0cd,1,3,__stream)" ( (pointer_expression "&DAT_0015d0cd" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "quoteput(pdVar2->internal_name,(FILE *)__stream,0);" (call_expression "quoteput(pdVar2->internal_name,(FILE *)__stream,0)" identifier (argument_list "(pdVar2->internal_name,(FILE *)__stream,0)" ( (field_expression "pdVar2->internal_name" identifier -> field_identifier) , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) })) (if_statement "if (pdVar2->ordinal != -1) {\n        fprintf(__stream," @%d");\n      }" if (parenthesized_expression "(pdVar2->ordinal != -1)" ( (binary_expression "pdVar2->ordinal != -1" (field_expression "pdVar2->ordinal" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        fprintf(__stream," @%d");\n      }" { (expression_statement "fprintf(__stream," @%d");" (call_expression "fprintf(__stream," @%d")" identifier (argument_list "(__stream," @%d")" ( identifier , (string_literal "" @%d"" " string_content ") ))) ;) })) (if_statement "if (pdVar2->flag_private == '\0') {\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }" if (parenthesized_expression "(pdVar2->flag_private == '\0')" ( (binary_expression "pdVar2->flag_private == '\0'" (field_expression "pdVar2->flag_private" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (pdVar2->flag_noname != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = pdVar2->flag_data;\n      }" { (if_statement "if (pdVar2->flag_constant == '\0') goto LAB_0015636a;" if (parenthesized_expression "(pdVar2->flag_constant == '\0')" ( (binary_expression "pdVar2->flag_constant == '\0'" (field_expression "pdVar2->flag_constant" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015636a;" goto statement_identifier ;)) (labeled_statement "LAB_00156430:\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 (pdVar2->flag_noname != '\0') goto LAB_00156453;" if (parenthesized_expression "(pdVar2->flag_noname != '\0')" ( (binary_expression "pdVar2->flag_noname != '\0'" (field_expression "pdVar2->flag_noname" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156453;" goto statement_identifier ;)) (labeled_statement "LAB_00156374:\n        cVar3 = pdVar2->flag_data;" statement_identifier : (expression_statement "cVar3 = pdVar2->flag_data;" (assignment_expression "cVar3 = pdVar2->flag_data" identifier = (field_expression "pdVar2->flag_data" identifier -> field_identifier)) ;)) }) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->flag_data;\n      }" else (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (pdVar2->flag_constant != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = pdVar2->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 (pdVar2->flag_constant != '\0') goto LAB_00156430;" if (parenthesized_expression "(pdVar2->flag_constant != '\0')" ( (binary_expression "pdVar2->flag_constant != '\0'" (field_expression "pdVar2->flag_constant" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156430;" goto statement_identifier ;)) (labeled_statement "LAB_0015636a:\n        if (pdVar2->flag_noname == '\0') goto LAB_00156374;" statement_identifier : (if_statement "if (pdVar2->flag_noname == '\0') goto LAB_00156374;" if (parenthesized_expression "(pdVar2->flag_noname == '\0')" ( (binary_expression "pdVar2->flag_noname == '\0'" (field_expression "pdVar2->flag_noname" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156374;" goto statement_identifier ;))) (labeled_statement "LAB_00156453:\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 "cVar3 = pdVar2->flag_data;" (assignment_expression "cVar3 = pdVar2->flag_data" identifier = (field_expression "pdVar2->flag_data" identifier -> field_identifier)) ;) }))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\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 "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 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 "((int)lVar9 < pe_def_file->num_exports)" ( (binary_expression "(int)lVar9 < pe_def_file->num_exports" (cast_expression "(int)lVar9" ( (type_descriptor "int" primitive_type) ) 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    lVar9 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = pdVar1->internal_name;\n      if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,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",(ulong)(uint)pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < 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    lVar9 = 0;\n    do {\n      pdVar1 = pe_def_file->imports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = pdVar1->internal_name;\n      if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,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",(ulong)(uint)pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_imports);\n  }" { (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      pdVar1 = pe_def_file->imports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = pdVar1->internal_name;\n      if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,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",(ulong)(uint)pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar9 < pe_def_file->num_imports);" do (compound_statement "{\n      pdVar1 = pe_def_file->imports + lVar9;\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = pdVar1->internal_name;\n      if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,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",(ulong)(uint)pdVar1->ordinal);\n      }\n      else {\n        quoteput(pdVar1->name,(FILE *)__stream,0);\n      }\n      if (pdVar1->its_name != (char *)0x0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }\n      lVar9 = lVar9 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "pdVar1 = pe_def_file->imports + lVar9;" (assignment_expression "pdVar1 = pe_def_file->imports + lVar9" identifier = (binary_expression "pe_def_file->imports + lVar9" (field_expression "pe_def_file->imports" identifier -> field_identifier) + identifier)) ;) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar7 = pdVar1->internal_name;" (assignment_expression "pcVar7 = pdVar1->internal_name" identifier = (field_expression "pdVar1->internal_name" identifier -> field_identifier)) ;) (if_statement "if ((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))) {\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" if (parenthesized_expression "((pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0))))" ( (binary_expression "(pcVar7 != (char *)0x0) &&\n         ((pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0)))" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (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(pcVar7,pdVar1->name), iVar5 != 0)))" ( (parenthesized_expression "(pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0))" ( (binary_expression "pdVar1->name == (char *)0x0 || (iVar5 = strcmp(pcVar7,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(pcVar7,pdVar1->name), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(pcVar7,pdVar1->name), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pcVar7,pdVar1->name)" identifier = (call_expression "strcmp(pcVar7,pdVar1->name)" identifier (argument_list "(pcVar7,pdVar1->name)" ( identifier , (field_expression "pdVar1->name" identifier -> field_identifier) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n        quoteput(pcVar7,(FILE *)__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" { (expression_statement "quoteput(pcVar7,(FILE *)__stream,0);" (call_expression "quoteput(pcVar7,(FILE *)__stream,0)" identifier (argument_list "(pcVar7,(FILE *)__stream,0)" ( identifier , (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" identifier (argument_list "(&DAT_0015d0cd,1,3,__stream)" ( (pointer_expression "&DAT_0015d0cd" & 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",(ulong)(uint)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",(ulong)(uint)pdVar1->ordinal);\n      }" { (expression_statement "fprintf(__stream,"%d",(ulong)(uint)pdVar1->ordinal);" (call_expression "fprintf(__stream,"%d",(ulong)(uint)pdVar1->ordinal)" identifier (argument_list "(__stream,"%d",(ulong)(uint)pdVar1->ordinal)" ( identifier , (string_literal ""%d"" " string_content ") , (cast_expression "(ulong)(uint)pdVar1->ordinal" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)pdVar1->ordinal" ( (type_descriptor "uint" type_identifier) ) (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_0029f2fc,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_0029f2fc,1,4,__stream);\n        quoteput(pdVar1->its_name,(FILE *)__stream,0);\n      }" { (expression_statement "fwrite(&DAT_0029f2fc,1,4,__stream);" (call_expression "fwrite(&DAT_0029f2fc,1,4,__stream)" identifier (argument_list "(&DAT_0029f2fc,1,4,__stream)" ( (pointer_expression "&DAT_0029f2fc" & 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 "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 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 "((int)lVar9 < pe_def_file->num_imports)" ( (binary_expression "(int)lVar9 < pe_def_file->num_imports" (cast_expression "(int)lVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "pe_def_file->num_imports" identifier -> field_identifier)) )) ;) })) (labeled_statement "LAB_00155f42:\n  iVar5 = fclose(__stream);" statement_identifier : (expression_statement "iVar5 = fclose(__stream);" (assignment_expression "iVar5 = fclose(__stream)" identifier = (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (if_statement "if (iVar5 != -1) {\n    return;\n  }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar7 = (char *)dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "pcVar7 = (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(pcVar7,pe_out_def_filename);" (call_expression "einfo(pcVar7,pe_out_def_filename)" identifier (argument_list "(pcVar7,pe_out_def_filename)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00155d80(char *param_1)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}\n\n" (function_definition "void FUN_00155d80(char *param_1)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00155d80(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "__stream = fopen(param_1,"w");" (assignment_expression "__stream = fopen(param_1,"w")" identifier = (call_expression "fopen(param_1,"w")" identifier (argument_list "(param_1,"w")" ( identifier , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,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    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }" { (expression_statement "uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "uVar6 = 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_00129380(uVar6,param_1);" (call_expression "FUN_00129380(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }" if (parenthesized_expression "(DAT_002b5c00 == (long *)0x0)" ( (binary_expression "DAT_002b5c00 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar7 = (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,pcVar7);" (call_expression "fprintf(__stream,pcVar7)" identifier (argument_list "(__stream,pcVar7)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00155f42;" goto statement_identifier ;) })) (if_statement "if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(*DAT_002b5c00 != 0)" ( (binary_expression "*DAT_002b5c00 != 0" (pointer_expression "*DAT_002b5c00" * identifier) != number_literal) )) (compound_statement "{\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }" { (if_statement "if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" if (parenthesized_expression "((int)DAT_002b5c00[1] == 0)" ( (binary_expression "(int)DAT_002b5c00[1] == 0" (cast_expression "(int)DAT_002b5c00[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[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_001543c0(*DAT_002b5c00,__stream,1);" (call_expression "FUN_001543c0(*DAT_002b5c00,__stream,1)" identifier (argument_list "(*DAT_002b5c00,__stream,1)" ( (pointer_expression "*DAT_002b5c00" * identifier) , identifier , number_literal ))) ;) (if_statement "if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }" if (parenthesized_expression "(*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0)" ( (binary_expression "*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0" (pointer_expression "*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" * (cast_expression "(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (binary_expression "*(long *)(DAT_002b5f90 + 0xf8) + 0x100" (pointer_expression "*(long *)(DAT_002b5f90 + 0xf8)" * (cast_expression "(long *)(DAT_002b5f90 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f90 + 0xf8)" ( (binary_expression "DAT_002b5f90 + 0xf8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\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,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));" (call_expression "fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100))" identifier (argument_list "(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100))" ( identifier , (string_literal ""%016lx"" " string_content ") , (pointer_expression "*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" * (cast_expression "(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" ( (binary_expression "*(long *)(DAT_002b5f90 + 0xf8) + 0x100" (pointer_expression "*(long *)(DAT_002b5f90 + 0xf8)" * (cast_expression "(long *)(DAT_002b5f90 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f90 + 0xf8)" ( (binary_expression "DAT_002b5f90 + 0xf8" 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_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }" if (parenthesized_expression "(DAT_002b5c00[3] != 0)" ( (binary_expression "DAT_002b5c00[3] != 0" (subscript_expression "DAT_002b5c00[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__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 "FUN_001543c0(DAT_002b5c00[3],__stream,1);" (call_expression "FUN_001543c0(DAT_002b5c00[3],__stream,1)" identifier (argument_list "(DAT_002b5c00[3],__stream,1)" ( (subscript_expression "DAT_002b5c00[3]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) })) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x6c) == -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x6c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x6c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x6c)" ( (binary_expression "(long)DAT_002b5c00 + 0x6c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }" { (if_statement "if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }" if (parenthesized_expression "((int)DAT_002b5c00[0xd] != -1)" ( (binary_expression "(int)DAT_002b5c00[0xd] != -1" (cast_expression "(int)DAT_002b5c00[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xd]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n      fprintf(__stream,"VERSION %d\n");\n    }" { (expression_statement "fprintf(__stream,"VERSION %d\n");" (call_expression "fprintf(__stream,"VERSION %d\n")" identifier (argument_list "(__stream,"VERSION %d\n")" ( identifier , (string_literal ""VERSION %d\n"" " string_content escape_sequence ") ))) ;) })) }) (else_clause "else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" else (compound_statement "{\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" { (expression_statement "fprintf(__stream,"VERSION %d.%d\n");" (call_expression "fprintf(__stream,"VERSION %d.%d\n")" identifier (argument_list "(__stream,"VERSION %d.%d\n")" ( identifier , (string_literal ""VERSION %d.%d\n"" " string_content escape_sequence ") ))) ;) }))) (if_statement "if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" if (parenthesized_expression "(((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1))" ( (binary_expression "((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)" (parenthesized_expression "((int)DAT_002b5c00[4] == -1)" ( (binary_expression "(int)DAT_002b5c00[4] == -1" (cast_expression "(int)DAT_002b5c00[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[4]" identifier [ number_literal ])) == number_literal) )) && (parenthesized_expression "((int)DAT_002b5c00[5] == -1)" ( (binary_expression "(int)DAT_002b5c00[5] == -1" (cast_expression "(int)DAT_002b5c00[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[5]" identifier [ number_literal ])) == number_literal) ))) )) (compound_statement "{\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }" { (expression_statement "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);" (assignment_expression "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24)" identifier = (pointer_expression "*(uint *)((long)DAT_002b5c00 + 0x24)" * (cast_expression "(uint *)((long)DAT_002b5c00 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x24)" ( (binary_expression "(long)DAT_002b5c00 + 0x24" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }" { (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) == -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" ( (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00155f1f;" goto statement_identifier ;)) (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" else (compound_statement "{\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" { (labeled_statement "LAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);" statement_identifier : (expression_statement "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);" (call_expression "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9)" identifier (argument_list "(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9)" ( identifier , (string_literal ""STACKSIZE 0x%x,0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (expression_statement "uVar9 = *(uint *)(DAT_002b5c00 + 5);" (assignment_expression "uVar9 = *(uint *)(DAT_002b5c00 + 5)" identifier = (pointer_expression "*(uint *)(DAT_002b5c00 + 5)" * (cast_expression "(uint *)(DAT_002b5c00 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00 + 5)" ( (binary_expression "DAT_002b5c00 + 5" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) == -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" ( (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00155fd1;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);" statement_identifier : (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9)" identifier (argument_list "(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9)" ( identifier , (string_literal ""HEAPSIZE 0x%x,0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (labeled_statement "LAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];" statement_identifier : (expression_statement "iVar5 = (int)DAT_002b5c00[6];" (assignment_expression "iVar5 = (int)DAT_002b5c00[6]" identifier = (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ]))) ;)) }) (else_clause "else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" else (compound_statement "{\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" { (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" identifier (argument_list "(10,__stream)" ( number_literal , identifier ))) ;) (expression_statement "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);" (assignment_expression "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24)" identifier = (pointer_expression "*(uint *)((long)DAT_002b5c00 + 0x24)" * (cast_expression "(uint *)((long)DAT_002b5c00 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x24)" ( (binary_expression "(long)DAT_002b5c00 + 0x24" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(DAT_002b5c00 + 4);" (assignment_expression "uVar4 = *(uint *)(DAT_002b5c00 + 4)" identifier = (pointer_expression "*(uint *)(DAT_002b5c00 + 4)" * (cast_expression "(uint *)(DAT_002b5c00 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00 + 4)" ( (binary_expression "DAT_002b5c00 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 != 0xffffffff) goto LAB_00155fa8;" if (parenthesized_expression "(uVar9 != 0xffffffff)" ( (binary_expression "uVar9 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_00155fa8;" goto statement_identifier ;)) (if_statement "if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" if (parenthesized_expression "(uVar4 != 0xffffffff)" ( (binary_expression "uVar4 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" { (expression_statement "fprintf(__stream,"STACKSIZE 0x%x\n");" (call_expression "fprintf(__stream,"STACKSIZE 0x%x\n")" identifier (argument_list "(__stream,"STACKSIZE 0x%x\n")" ( identifier , (string_literal ""STACKSIZE 0x%x\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "uVar9 = *(uint *)(DAT_002b5c00 + 5);" (assignment_expression "uVar9 = *(uint *)(DAT_002b5c00 + 5)" identifier = (pointer_expression "*(uint *)(DAT_002b5c00 + 5)" * (cast_expression "(uint *)(DAT_002b5c00 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00 + 5)" ( (binary_expression "DAT_002b5c00 + 5" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;" if (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) != -1)" ( (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) != -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" * (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" ( (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00155f05;" goto statement_identifier ;)) (labeled_statement "LAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;" statement_identifier : (if_statement "if (uVar9 == 0xffffffff) goto LAB_00155f1f;" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00155f1f;" goto statement_identifier ;))) (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9)" identifier (argument_list "(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9)" ( identifier , (string_literal ""HEAPSIZE 0x%x\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "iVar5 = (int)DAT_002b5c00[6];" (assignment_expression "iVar5 = (int)DAT_002b5c00[6]" identifier = (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ]))) ;) }))) (if_statement "if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }" if (parenthesized_expression "((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6]))" ( (binary_expression "(0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])" (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])" ( (comma_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6]" (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 < (int)DAT_002b5c00[6]" number_literal < (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);" do (compound_statement "{\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "lVar2 = lVar10 * 0x18;" (assignment_expression "lVar2 = lVar10 * 0x18" identifier = (binary_expression "lVar10 * 0x18" identifier * number_literal)) ;) (expression_statement "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);" (call_expression "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0)" identifier (argument_list "(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0)" ( (pointer_expression "*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18)" * (cast_expression "(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[7] + lVar10 * 0x18)" ( (binary_expression "DAT_002b5c00[7] + lVar10 * 0x18" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + (binary_expression "lVar10 * 0x18" identifier * number_literal)) )))) , identifier , number_literal ))) ;) (expression_statement "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }" if (parenthesized_expression "(*(long *)(lVar8 + 8) != 0)" ( (binary_expression "*(long *)(lVar8 + 8) != 0" (pointer_expression "*(long *)(lVar8 + 8)" * (cast_expression "(long *)(lVar8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 8)" ( (binary_expression "lVar8 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\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 "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);" (call_expression "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0)" identifier (argument_list "(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0)" ( (pointer_expression "*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2)" * (cast_expression "(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[7] + 8 + lVar2)" ( (binary_expression "DAT_002b5c00[7] + 8 + lVar2" (binary_expression "DAT_002b5c00[7] + 8" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + number_literal) + identifier) )))) , identifier , number_literal ))) ;) (expression_statement "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) })) (if_statement "if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }" if (parenthesized_expression "(*(char *)(lVar8 + 0x10) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x10) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x10)" * (cast_expression "(char *)(lVar8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10)" ( (binary_expression "lVar8 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }" { (if_statement "if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;" if (parenthesized_expression "(*(char *)(lVar8 + 0x11) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x11) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x11)" * (cast_expression "(char *)(lVar8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x11)" ( (binary_expression "lVar8 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015604a;" goto statement_identifier ;)) (labeled_statement "LAB_00156154:\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 "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;" if (parenthesized_expression "(*(char *)(lVar8 + 0x12) != '\0')" ( (binary_expression "*(char *)(lVar8 + 0x12) != '\0'" (pointer_expression "*(char *)(lVar8 + 0x12)" * (cast_expression "(char *)(lVar8 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x12)" ( (binary_expression "lVar8 + 0x12" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156188;" goto statement_identifier ;)) (labeled_statement "LAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);" statement_identifier : (expression_statement "cVar3 = *(char *)(lVar8 + 0x13);" (assignment_expression "cVar3 = *(char *)(lVar8 + 0x13)" identifier = (pointer_expression "*(char *)(lVar8 + 0x13)" * (cast_expression "(char *)(lVar8 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x13)" ( (binary_expression "lVar8 + 0x13" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }" else (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\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 "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" identifier = (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;" if (parenthesized_expression "(*(char *)(lVar8 + 0x11) != '\0')" ( (binary_expression "*(char *)(lVar8 + 0x11) != '\0'" (pointer_expression "*(char *)(lVar8 + 0x11)" * (cast_expression "(char *)(lVar8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x11)" ( (binary_expression "lVar8 + 0x11" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156154;" goto statement_identifier ;)) (labeled_statement "LAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;" statement_identifier : (if_statement "if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;" if (parenthesized_expression "(*(char *)(lVar8 + 0x12) == '\0')" ( (binary_expression "*(char *)(lVar8 + 0x12) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x12)" * (cast_expression "(char *)(lVar8 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x12)" ( (binary_expression "lVar8 + 0x12" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156054;" goto statement_identifier ;))) (labeled_statement "LAB_00156188:\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 "cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);" (assignment_expression "cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" identifier = (pointer_expression "*(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" * (cast_expression "(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + DAT_002b5c00[7] + 0x13)" ( (binary_expression "lVar2 + DAT_002b5c00[7] + 0x13" (binary_expression "lVar2 + DAT_002b5c00[7]" identifier + (subscript_expression "DAT_002b5c00[7]" identifier [ number_literal ])) + number_literal) ))))) ;) }))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\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 "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 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 "((int)lVar10 < (int)DAT_002b5c00[6])" ( (binary_expression "(int)lVar10 < (int)DAT_002b5c00[6]" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)DAT_002b5c00[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[6]" identifier [ number_literal ]))) )) ;) })) (if_statement "if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }" if (parenthesized_expression "((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8]))" ( (binary_expression "(0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])" (parenthesized_expression "(0 < (int)DAT_002b5c00[8])" ( (binary_expression "0 < (int)DAT_002b5c00[8]" number_literal < (cast_expression "(int)DAT_002b5c00[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[8]" identifier [ number_literal ]))) )) && (parenthesized_expression "(fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])" ( (comma_expression "fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8]" (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 < (int)DAT_002b5c00[8]" number_literal < (cast_expression "(int)DAT_002b5c00[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[8]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);" do (compound_statement "{\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);" (assignment_expression "puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28)" identifier = (cast_expression "(undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[9] + lVar10 * 0x28)" ( (binary_expression "DAT_002b5c00[9] + lVar10 * 0x28" (subscript_expression "DAT_002b5c00[9]" identifier [ number_literal ]) + (binary_expression "lVar10 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001543c0(*puVar1,__stream,0);" (call_expression "FUN_001543c0(*puVar1,__stream,0)" identifier (argument_list "(*puVar1,__stream,0)" ( (pointer_expression "*puVar1" * identifier) , identifier , number_literal ))) ;) (if_statement "if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }" if (parenthesized_expression "(((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0))" ( (binary_expression "((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)" (parenthesized_expression "((char *)puVar1[1] != (char *)0x0)" ( (binary_expression "(char *)puVar1[1] != (char *)0x0" (cast_expression "(char *)puVar1[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[1]" identifier [ number_literal ])) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1)" identifier = (call_expression "strcmp((char *)puVar1[1],(char *)*puVar1)" identifier (argument_list "((char *)puVar1[1],(char *)*puVar1)" ( (cast_expression "(char *)puVar1[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[1]" identifier [ number_literal ])) , (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }" { (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" identifier (argument_list "(&DAT_0015d0cd,1,3,__stream)" ( (pointer_expression "&DAT_0015d0cd" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001543c0(puVar1[1],__stream,0);" (call_expression "FUN_001543c0(puVar1[1],__stream,0)" identifier (argument_list "(puVar1[1],__stream,0)" ( (subscript_expression "puVar1[1]" identifier [ number_literal ]) , identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }" if (parenthesized_expression "(*(int *)(puVar1 + 3) != -1)" ( (binary_expression "*(int *)(puVar1 + 3) != -1" (pointer_expression "*(int *)(puVar1 + 3)" * (cast_expression "(int *)(puVar1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 3)" ( (binary_expression "puVar1 + 3" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        fprintf(__stream," @%d");\n      }" { (expression_statement "fprintf(__stream," @%d");" (call_expression "fprintf(__stream," @%d")" identifier (argument_list "(__stream," @%d")" ( identifier , (string_literal "" @%d"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" if (parenthesized_expression "(*(char *)(puVar1 + 4) == '\0')" ( (binary_expression "*(char *)(puVar1 + 4) == '\0'" (pointer_expression "*(char *)(puVar1 + 4)" * (cast_expression "(char *)(puVar1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" { (if_statement "if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x21) == '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x21) == '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x21)" * (cast_expression "(char *)((long)puVar1 + 0x21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x21)" ( (binary_expression "(long)puVar1 + 0x21" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015636a;" goto statement_identifier ;)) (labeled_statement "LAB_00156430:\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 *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x22) != '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x22) != '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x22)" * (cast_expression "(char *)((long)puVar1 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x22)" ( (binary_expression "(long)puVar1 + 0x22" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156453;" goto statement_identifier ;)) (labeled_statement "LAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);" statement_identifier : (expression_statement "cVar3 = *(char *)((long)puVar1 + 0x23);" (assignment_expression "cVar3 = *(char *)((long)puVar1 + 0x23)" identifier = (pointer_expression "*(char *)((long)puVar1 + 0x23)" * (cast_expression "(char *)((long)puVar1 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x23)" ( (binary_expression "(long)puVar1 + 0x23" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;)) }) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" else (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\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 *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x21) != '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x21) != '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x21)" * (cast_expression "(char *)((long)puVar1 + 0x21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x21)" ( (binary_expression "(long)puVar1 + 0x21" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156430;" goto statement_identifier ;)) (labeled_statement "LAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;" statement_identifier : (if_statement "if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;" if (parenthesized_expression "(*(char *)((long)puVar1 + 0x22) == '\0')" ( (binary_expression "*(char *)((long)puVar1 + 0x22) == '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x22)" * (cast_expression "(char *)((long)puVar1 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x22)" ( (binary_expression "(long)puVar1 + 0x22" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00156374;" goto statement_identifier ;))) (labeled_statement "LAB_00156453:\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 "cVar3 = *(char *)((long)puVar1 + 0x23);" (assignment_expression "cVar3 = *(char *)((long)puVar1 + 0x23)" identifier = (pointer_expression "*(char *)((long)puVar1 + 0x23)" * (cast_expression "(char *)((long)puVar1 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0x23)" ( (binary_expression "(long)puVar1 + 0x23" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\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 "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 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 "((int)lVar10 < (int)DAT_002b5c00[8])" ( (binary_expression "(int)lVar10 < (int)DAT_002b5c00[8]" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)DAT_002b5c00[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[8]" identifier [ number_literal ]))) )) ;) })) (if_statement "if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }" if (parenthesized_expression "((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb]))" ( (binary_expression "(0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])" (parenthesized_expression "(0 < (int)DAT_002b5c00[0xb])" ( (binary_expression "0 < (int)DAT_002b5c00[0xb]" number_literal < (cast_expression "(int)DAT_002b5c00[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xb]" identifier [ number_literal ]))) )) && (parenthesized_expression "(fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])" ( (comma_expression "fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb]" (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 < (int)DAT_002b5c00[0xb]" number_literal < (cast_expression "(int)DAT_002b5c00[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xb]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);" do (compound_statement "{\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" { (expression_statement "puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);" (assignment_expression "puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28)" identifier = (cast_expression "(undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5c00[0xc] + lVar10 * 0x28)" ( (binary_expression "DAT_002b5c00[0xc] + lVar10 * 0x28" (subscript_expression "DAT_002b5c00[0xc]" identifier [ number_literal ]) + (binary_expression "lVar10 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" identifier (argument_list "(&DAT_0016c102,1,4,__stream)" ( (pointer_expression "&DAT_0016c102" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar7 = (char *)*puVar1;" (assignment_expression "pcVar7 = (char *)*puVar1" identifier = (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" if (parenthesized_expression "((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0))))" ( (binary_expression "(pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))" ( (parenthesized_expression "((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0))" ( (binary_expression "(char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)" (binary_expression "(char *)puVar1[2] == (char *)0x0" (cast_expression "(char *)puVar1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pcVar7,(char *)puVar1[2])" identifier = (call_expression "strcmp(pcVar7,(char *)puVar1[2])" identifier (argument_list "(pcVar7,(char *)puVar1[2])" ( identifier , (cast_expression "(char *)puVar1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" { (expression_statement "FUN_001543c0(pcVar7,__stream,0);" (call_expression "FUN_001543c0(pcVar7,__stream,0)" identifier (argument_list "(pcVar7,__stream,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" identifier (argument_list "(&DAT_0015d0cd,1,3,__stream)" ( (pointer_expression "&DAT_0015d0cd" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "FUN_001543c0(puVar1[1] + 0x10,__stream,0);" (call_expression "FUN_001543c0(puVar1[1] + 0x10,__stream,0)" identifier (argument_list "(puVar1[1] + 0x10,__stream,0)" ( (binary_expression "puVar1[1] + 0x10" (subscript_expression "puVar1[1]" identifier [ number_literal ]) + number_literal) , identifier , number_literal ))) ;) (expression_statement "fputc(0x2e,__stream);" (call_expression "fputc(0x2e,__stream)" identifier (argument_list "(0x2e,__stream)" ( number_literal , identifier ))) ;) (if_statement "if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" if (parenthesized_expression "(puVar1[2] == 0)" ( (binary_expression "puVar1[2] == 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }" { (expression_statement "fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));" (call_expression "fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4))" identifier (argument_list "(__stream,"%d",(ulong)*(uint *)(puVar1 + 4))" ( identifier , (string_literal ""%d"" " string_content ") , (binary_expression "(ulong)*(uint *)(puVar1 + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(puVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" else (compound_statement "{\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" { (expression_statement "FUN_001543c0(puVar1[2],__stream,0);" (call_expression "FUN_001543c0(puVar1[2],__stream,0)" identifier (argument_list "(puVar1[2],__stream,0)" ( (subscript_expression "puVar1[2]" identifier [ number_literal ]) , identifier , number_literal ))) ;) }))) (if_statement "if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }" if (parenthesized_expression "(puVar1[3] != 0)" ( (binary_expression "puVar1[3] != 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }" { (expression_statement "fwrite(&DAT_0029f2fc,1,4,__stream);" (call_expression "fwrite(&DAT_0029f2fc,1,4,__stream)" identifier (argument_list "(&DAT_0029f2fc,1,4,__stream)" ( (pointer_expression "&DAT_0029f2fc" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001543c0(puVar1[3],__stream,0);" (call_expression "FUN_001543c0(puVar1[3],__stream,0)" identifier (argument_list "(puVar1[3],__stream,0)" ( (subscript_expression "puVar1[3]" identifier [ number_literal ]) , identifier , number_literal ))) ;) })) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 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 "((int)lVar10 < (int)DAT_002b5c00[0xb])" ( (binary_expression "(int)lVar10 < (int)DAT_002b5c00[0xb]" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)DAT_002b5c00[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_002b5c00[0xb]" identifier [ number_literal ]))) )) ;) })) (labeled_statement "LAB_00155f42:\n  iVar5 = fclose(__stream);" statement_identifier : (expression_statement "iVar5 = fclose(__stream);" (assignment_expression "iVar5 = fclose(__stream)" identifier = (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;)) (if_statement "if (iVar5 != -1) {\n    return;\n  }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "uVar6 = 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_00129380(uVar6,param_1);" (call_expression "FUN_00129380(uVar6,param_1)" identifier (argument_list "(uVar6,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 (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 (sized_type_specifier long) (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 (cast_expression ( (type_descriptor TYPE) ) (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 ( (pointer_expression * IDENT) , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (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 (sized_type_specifier long) (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 ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (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 < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) , IDENT , LIT ))) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT) )))) , IDENT , LIT ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ))) )) (compound_statement { (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 ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , LIT ))) ;) (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 ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (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 (sized_type_specifier long)) ) 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 (sized_type_specifier long)) ) 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 (sized_type_specifier long)) ) 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 (sized_type_specifier long)) ) 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 (sized_type_specifier long)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ))) )) (compound_statement { (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 ( (pointer_expression & 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 , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , 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 ( IDENT , (string_literal " string_content ") , (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) }))) (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 ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (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_00155d80(char *param_1)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00155d80(char *param_1)" (identifier "FUN_00155d80") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  long lVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  FILE *__stream;\n  undefined8 uVar6;\n  char *pcVar7;\n  long lVar8;\n  uint uVar9;\n  long lVar10;\n  \n  __stream = fopen(param_1,"w");\n  if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }\n  if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }\n  if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }\n  if (DAT_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }\n  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }\n  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }\n  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }\n  if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }\nLAB_00155f42:\n  iVar5 = fclose(__stream);\n  if (iVar5 != -1) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);\n  FUN_00129380(uVar6,param_1);\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (expression_statement "__stream = fopen(param_1,"w");" (assignment_expression "__stream = fopen(param_1,"w")" (identifier "__stream") (= "=") (call_expression "fopen(param_1,"w")" (identifier "fopen") (argument_list "(param_1,"w")" (( "(") (identifier "param_1") (, ",") (string_literal ""w"" (" """) (string_content "w") (" """)) () ")")))) (; ";")) (if_statement "if (__stream == (FILE *)0x0) {\n    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,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    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);\n    FUN_00129380(uVar6,param_1);\n  }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5)" (identifier "uVar6") (= "=") (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_00129380(uVar6,param_1);" (call_expression "FUN_00129380(uVar6,param_1)" (identifier "FUN_00129380") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_002b5c00 == (long *)0x0) {\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }" (if "if") (parenthesized_expression "(DAT_002b5c00 == (long *)0x0)" (( "(") (binary_expression "DAT_002b5c00 == (long *)0x0" (identifier "DAT_002b5c00") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);\n    fprintf(__stream,pcVar7);\n    goto LAB_00155f42;\n  }" ({ "{") (expression_statement "pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"; no contents available\n",5)" (identifier "pcVar7") (= "=") (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,pcVar7);" (call_expression "fprintf(__stream,pcVar7)" (identifier "fprintf") (argument_list "(__stream,pcVar7)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") () ")"))) (; ";")) (goto_statement "goto LAB_00155f42;" (goto "goto") (statement_identifier "LAB_00155f42") (; ";")) (} "}"))) (if_statement "if (*DAT_002b5c00 != 0) {\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }" (if "if") (parenthesized_expression "(*DAT_002b5c00 != 0)" (( "(") (binary_expression "*DAT_002b5c00 != 0" (pointer_expression "*DAT_002b5c00" (* "*") (identifier "DAT_002b5c00")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }\n    FUN_001543c0(*DAT_002b5c00,__stream,1);\n    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }\n    fputc(10,__stream);\n  }" ({ "{") (if_statement "if ((int)DAT_002b5c00[1] == 0) {\n      fwrite("NAME ",1,5,__stream);\n    }\n    else {\n      fwrite("LIBRARY ",1,8,__stream);\n    }" (if "if") (parenthesized_expression "((int)DAT_002b5c00[1] == 0)" (( "(") (binary_expression "(int)DAT_002b5c00[1] == 0" (cast_expression "(int)DAT_002b5c00[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[1]" (identifier "DAT_002b5c00") ([ "[") (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_001543c0(*DAT_002b5c00,__stream,1);" (call_expression "FUN_001543c0(*DAT_002b5c00,__stream,1)" (identifier "FUN_001543c0") (argument_list "(*DAT_002b5c00,__stream,1)" (( "(") (pointer_expression "*DAT_002b5c00" (* "*") (identifier "DAT_002b5c00")) (, ",") (identifier "__stream") (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\n    }" (if "if") (parenthesized_expression "(*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0)" (( "(") (binary_expression "*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0" (pointer_expression "*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" (* "*") (cast_expression "(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" (( "(") (binary_expression "*(long *)(DAT_002b5f90 + 0xf8) + 0x100" (pointer_expression "*(long *)(DAT_002b5f90 + 0xf8)" (* "*") (cast_expression "(long *)(DAT_002b5f90 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5f90 + 0xf8)" (( "(") (binary_expression "DAT_002b5f90 + 0xf8" (identifier "DAT_002b5f90") (+ "+") (number_literal "0xf8")) () ")")))) (+ "+") (number_literal "0x100")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" BASE=0x",1,8,__stream);\n      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));\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,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));" (call_expression "fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100))" (identifier "fprintf") (argument_list "(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100))" (( "(") (identifier "__stream") (, ",") (string_literal ""%016lx"" (" """) (string_content "%016lx") (" """)) (, ",") (pointer_expression "*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" (* "*") (cast_expression "(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(DAT_002b5f90 + 0xf8) + 0x100)" (( "(") (binary_expression "*(long *)(DAT_002b5f90 + 0xf8) + 0x100" (pointer_expression "*(long *)(DAT_002b5f90 + 0xf8)" (* "*") (cast_expression "(long *)(DAT_002b5f90 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5f90 + 0xf8)" (( "(") (binary_expression "DAT_002b5f90 + 0xf8" (identifier "DAT_002b5f90") (+ "+") (number_literal "0xf8")) () ")")))) (+ "+") (number_literal "0x100")) () ")")))) () ")"))) (; ";")) (} "}"))) (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_002b5c00[3] != 0) {\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\n    fputc(10,__stream);\n  }" (if "if") (parenthesized_expression "(DAT_002b5c00[3] != 0)" (( "(") (binary_expression "DAT_002b5c00[3] != 0" (subscript_expression "DAT_002b5c00[3]" (identifier "DAT_002b5c00") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    fwrite("DESCRIPTION ",1,0xc,__stream);\n    FUN_001543c0(DAT_002b5c00[3],__stream,1);\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_001543c0(DAT_002b5c00[3],__stream,1);" (call_expression "FUN_001543c0(DAT_002b5c00[3],__stream,1)" (identifier "FUN_001543c0") (argument_list "(DAT_002b5c00[3],__stream,1)" (( "(") (subscript_expression "DAT_002b5c00[3]" (identifier "DAT_002b5c00") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "__stream") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }\n  else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" (if "if") (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x6c) == -1)" (( "(") (binary_expression "*(int *)((long)DAT_002b5c00 + 0x6c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x6c)" (* "*") (cast_expression "(int *)((long)DAT_002b5c00 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)DAT_002b5c00 + 0x6c)" (( "(") (binary_expression "(long)DAT_002b5c00 + 0x6c" (cast_expression "(long)DAT_002b5c00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_002b5c00")) (+ "+") (number_literal "0x6c")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }\n  }" ({ "{") (if_statement "if ((int)DAT_002b5c00[0xd] != -1) {\n      fprintf(__stream,"VERSION %d\n");\n    }" (if "if") (parenthesized_expression "((int)DAT_002b5c00[0xd] != -1)" (( "(") (binary_expression "(int)DAT_002b5c00[0xd] != -1" (cast_expression "(int)DAT_002b5c00[0xd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[0xd]" (identifier "DAT_002b5c00") ([ "[") (number_literal "0xd") (] "]"))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      fprintf(__stream,"VERSION %d\n");\n    }" ({ "{") (expression_statement "fprintf(__stream,"VERSION %d\n");" (call_expression "fprintf(__stream,"VERSION %d\n")" (identifier "fprintf") (argument_list "(__stream,"VERSION %d\n")" (( "(") (identifier "__stream") (, ",") (string_literal ""VERSION %d\n"" (" """) (string_content "VERSION %d") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" (else "else") (compound_statement "{\n    fprintf(__stream,"VERSION %d.%d\n");\n  }" ({ "{") (expression_statement "fprintf(__stream,"VERSION %d.%d\n");" (call_expression "fprintf(__stream,"VERSION %d.%d\n")" (identifier "fprintf") (argument_list "(__stream,"VERSION %d.%d\n")" (( "(") (identifier "__stream") (, ",") (string_literal ""VERSION %d.%d\n"" (" """) (string_content "VERSION %d.%d") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")))) (if_statement "if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }\n  else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" (if "if") (parenthesized_expression "(((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1))" (( "(") (binary_expression "((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)" (parenthesized_expression "((int)DAT_002b5c00[4] == -1)" (( "(") (binary_expression "(int)DAT_002b5c00[4] == -1" (cast_expression "(int)DAT_002b5c00[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[4]" (identifier "DAT_002b5c00") ([ "[") (number_literal "4") (] "]"))) (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "((int)DAT_002b5c00[5] == -1)" (( "(") (binary_expression "(int)DAT_002b5c00[5] == -1" (cast_expression "(int)DAT_002b5c00[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[5]" (identifier "DAT_002b5c00") ([ "[") (number_literal "5") (] "]"))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = 0xffffffff;\n    if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }\nLAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);\nLAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];\n  }" ({ "{") (expression_statement "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);" (assignment_expression "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)((long)DAT_002b5c00 + 0x24)" (* "*") (cast_expression "(uint *)((long)DAT_002b5c00 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)DAT_002b5c00 + 0x24)" (( "(") (binary_expression "(long)DAT_002b5c00 + 0x24" (cast_expression "(long)DAT_002b5c00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_002b5c00")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (uVar9 == 0xffffffff) {\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }\n    else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" (if "if") (parenthesized_expression "(uVar9 == 0xffffffff)" (( "(") (binary_expression "uVar9 == 0xffffffff" (identifier "uVar9") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;\n      uVar9 = 0xffffffff;\n    }" ({ "{") (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;" (if "if") (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) == -1)" (( "(") (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" (* "*") (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" (( "(") (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_002b5c00")) (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00155f1f;" (goto "goto") (statement_identifier "LAB_00155f1f") (; ";"))) (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else {\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" (else "else") (compound_statement "{\nLAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);\n      uVar9 = *(uint *)(DAT_002b5c00 + 5);\n      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;\n    }" ({ "{") (labeled_statement "LAB_00155fa8:\n      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);" (statement_identifier "LAB_00155fa8") (: ":") (expression_statement "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);" (call_expression "fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9)" (identifier "fprintf") (argument_list "(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9)" (( "(") (identifier "__stream") (, ",") (string_literal ""STACKSIZE 0x%x,0x%x\n"" (" """) (string_content "STACKSIZE 0x%x,0x%x") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4")) (, ",") (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")) () ")"))) (; ";"))) (expression_statement "uVar9 = *(uint *)(DAT_002b5c00 + 5);" (assignment_expression "uVar9 = *(uint *)(DAT_002b5c00 + 5)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(DAT_002b5c00 + 5)" (* "*") (cast_expression "(uint *)(DAT_002b5c00 + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5c00 + 5)" (( "(") (binary_expression "DAT_002b5c00 + 5" (identifier "DAT_002b5c00") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;" (if "if") (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) == -1)" (( "(") (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) == -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" (* "*") (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" (( "(") (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_002b5c00")) (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00155fd1;" (goto "goto") (statement_identifier "LAB_00155fd1") (; ";"))) (} "}")))) (labeled_statement "LAB_00155f05:\n    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);" (statement_identifier "LAB_00155f05") (: ":") (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9)" (identifier "fprintf") (argument_list "(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9)" (( "(") (identifier "__stream") (, ",") (string_literal ""HEAPSIZE 0x%x,0x%x\n"" (" """) (string_content "HEAPSIZE 0x%x,0x%x") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")) () ")"))) (; ";"))) (labeled_statement "LAB_00155f1f:\n    iVar5 = (int)DAT_002b5c00[6];" (statement_identifier "LAB_00155f1f") (: ":") (expression_statement "iVar5 = (int)DAT_002b5c00[6];" (assignment_expression "iVar5 = (int)DAT_002b5c00[6]" (identifier "iVar5") (= "=") (cast_expression "(int)DAT_002b5c00[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[6]" (identifier "DAT_002b5c00") ([ "[") (number_literal "6") (] "]")))) (; ";"))) (} "}")) (else_clause "else {\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" (else "else") (compound_statement "{\n    fputc(10,__stream);\n    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);\n    uVar4 = *(uint *)(DAT_002b5c00 + 4);\n    if (uVar9 != 0xffffffff) goto LAB_00155fa8;\n    if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }\n    uVar9 = *(uint *)(DAT_002b5c00 + 5);\n    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;\nLAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;\n    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);\n    iVar5 = (int)DAT_002b5c00[6];\n  }" ({ "{") (expression_statement "fputc(10,__stream);" (call_expression "fputc(10,__stream)" (identifier "fputc") (argument_list "(10,__stream)" (( "(") (number_literal "10") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);" (assignment_expression "uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)((long)DAT_002b5c00 + 0x24)" (* "*") (cast_expression "(uint *)((long)DAT_002b5c00 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)DAT_002b5c00 + 0x24)" (( "(") (binary_expression "(long)DAT_002b5c00 + 0x24" (cast_expression "(long)DAT_002b5c00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_002b5c00")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(DAT_002b5c00 + 4);" (assignment_expression "uVar4 = *(uint *)(DAT_002b5c00 + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(DAT_002b5c00 + 4)" (* "*") (cast_expression "(uint *)(DAT_002b5c00 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5c00 + 4)" (( "(") (binary_expression "DAT_002b5c00 + 4" (identifier "DAT_002b5c00") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar9 != 0xffffffff) goto LAB_00155fa8;" (if "if") (parenthesized_expression "(uVar9 != 0xffffffff)" (( "(") (binary_expression "uVar9 != 0xffffffff" (identifier "uVar9") (!= "!=") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_00155fa8;" (goto "goto") (statement_identifier "LAB_00155fa8") (; ";"))) (if_statement "if (uVar4 != 0xffffffff) {\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" (if "if") (parenthesized_expression "(uVar4 != 0xffffffff)" (( "(") (binary_expression "uVar4 != 0xffffffff" (identifier "uVar4") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      fprintf(__stream,"STACKSIZE 0x%x\n");\n    }" ({ "{") (expression_statement "fprintf(__stream,"STACKSIZE 0x%x\n");" (call_expression "fprintf(__stream,"STACKSIZE 0x%x\n")" (identifier "fprintf") (argument_list "(__stream,"STACKSIZE 0x%x\n")" (( "(") (identifier "__stream") (, ",") (string_literal ""STACKSIZE 0x%x\n"" (" """) (string_content "STACKSIZE 0x%x") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = *(uint *)(DAT_002b5c00 + 5);" (assignment_expression "uVar9 = *(uint *)(DAT_002b5c00 + 5)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(DAT_002b5c00 + 5)" (* "*") (cast_expression "(uint *)(DAT_002b5c00 + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5c00 + 5)" (( "(") (binary_expression "DAT_002b5c00 + 5" (identifier "DAT_002b5c00") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;" (if "if") (parenthesized_expression "(*(int *)((long)DAT_002b5c00 + 0x2c) != -1)" (( "(") (binary_expression "*(int *)((long)DAT_002b5c00 + 0x2c) != -1" (pointer_expression "*(int *)((long)DAT_002b5c00 + 0x2c)" (* "*") (cast_expression "(int *)((long)DAT_002b5c00 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)DAT_002b5c00 + 0x2c)" (( "(") (binary_expression "(long)DAT_002b5c00 + 0x2c" (cast_expression "(long)DAT_002b5c00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_002b5c00")) (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00155f05;" (goto "goto") (statement_identifier "LAB_00155f05") (; ";"))) (labeled_statement "LAB_00155fd1:\n    if (uVar9 == 0xffffffff) goto LAB_00155f1f;" (statement_identifier "LAB_00155fd1") (: ":") (if_statement "if (uVar9 == 0xffffffff) goto LAB_00155f1f;" (if "if") (parenthesized_expression "(uVar9 == 0xffffffff)" (( "(") (binary_expression "uVar9 == 0xffffffff" (identifier "uVar9") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_00155f1f;" (goto "goto") (statement_identifier "LAB_00155f1f") (; ";")))) (expression_statement "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);" (call_expression "fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9)" (identifier "fprintf") (argument_list "(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9)" (( "(") (identifier "__stream") (, ",") (string_literal ""HEAPSIZE 0x%x\n"" (" """) (string_content "HEAPSIZE 0x%x") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")) () ")"))) (; ";")) (expression_statement "iVar5 = (int)DAT_002b5c00[6];" (assignment_expression "iVar5 = (int)DAT_002b5c00[6]" (identifier "iVar5") (= "=") (cast_expression "(int)DAT_002b5c00[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[6]" (identifier "DAT_002b5c00") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")))) (if_statement "if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }" (if "if") (parenthesized_expression "((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6]))" (( "(") (binary_expression "(0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])" (parenthesized_expression "(0 < iVar5)" (( "(") (binary_expression "0 < iVar5" (number_literal "0") (< "<") (identifier "iVar5")) () ")")) (&& "&&") (parenthesized_expression "(fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])" (( "(") (comma_expression "fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6]" (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 < (int)DAT_002b5c00[6]" (number_literal "0") (< "<") (cast_expression "(int)DAT_002b5c00[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[6]" (identifier "DAT_002b5c00") ([ "[") (number_literal "6") (] "]"))))) () ")"))) () ")")) (compound_statement "{\n    lVar10 = 0;\n    do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);\n  }" ({ "{") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[6]);" (do "do") (compound_statement "{\n      fwrite(&DAT_0016c102,1,4,__stream);\n      lVar2 = lVar10 * 0x18;\n      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);\n      lVar8 = DAT_002b5c00[7] + lVar2;\n      if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }\n      if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" ({ "{") (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" (identifier "fwrite") (argument_list "(&DAT_0016c102,1,4,__stream)" (( "(") (pointer_expression "&DAT_0016c102" (& "&") (identifier "DAT_0016c102")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "lVar2 = lVar10 * 0x18;" (assignment_expression "lVar2 = lVar10 * 0x18" (identifier "lVar2") (= "=") (binary_expression "lVar10 * 0x18" (identifier "lVar10") (* "*") (number_literal "0x18"))) (; ";")) (expression_statement "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);" (call_expression "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0)" (identifier "FUN_001543c0") (argument_list "(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0)" (( "(") (pointer_expression "*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18)" (* "*") (cast_expression "(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5c00[7] + lVar10 * 0x18)" (( "(") (binary_expression "DAT_002b5c00[7] + lVar10 * 0x18" (subscript_expression "DAT_002b5c00[7]" (identifier "DAT_002b5c00") ([ "[") (number_literal "7") (] "]")) (+ "+") (binary_expression "lVar10 * 0x18" (identifier "lVar10") (* "*") (number_literal "0x18"))) () ")")))) (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" (identifier "lVar8") (= "=") (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" (identifier "DAT_002b5c00") ([ "[") (number_literal "7") (] "]")) (+ "+") (identifier "lVar2"))) (; ";")) (if_statement "if (*(long *)(lVar8 + 8) != 0) {\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }" (if "if") (parenthesized_expression "(*(long *)(lVar8 + 8) != 0)" (( "(") (binary_expression "*(long *)(lVar8 + 8) != 0" (pointer_expression "*(long *)(lVar8 + 8)" (* "*") (cast_expression "(long *)(lVar8 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 8)" (( "(") (binary_expression "lVar8 + 8" (identifier "lVar8") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        fwrite(" CLASS ",1,7,__stream);\n        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n      }" ({ "{") (expression_statement "fwrite(" CLASS ",1,7,__stream);" (call_expression "fwrite(" CLASS ",1,7,__stream)" (identifier "fwrite") (argument_list "(" CLASS ",1,7,__stream)" (( "(") (string_literal "" CLASS "" (" """) (string_content " CLASS ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);" (call_expression "FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0)" (identifier "FUN_001543c0") (argument_list "(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0)" (( "(") (pointer_expression "*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2)" (* "*") (cast_expression "(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5c00[7] + 8 + lVar2)" (( "(") (binary_expression "DAT_002b5c00[7] + 8 + lVar2" (binary_expression "DAT_002b5c00[7] + 8" (subscript_expression "DAT_002b5c00[7]" (identifier "DAT_002b5c00") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "8")) (+ "+") (identifier "lVar2")) () ")")))) (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" (identifier "lVar8") (= "=") (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" (identifier "DAT_002b5c00") ([ "[") (number_literal "7") (] "]")) (+ "+") (identifier "lVar2"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(lVar8 + 0x10) == '\0') {\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }\n      else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }" (if "if") (parenthesized_expression "(*(char *)(lVar8 + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(lVar8 + 0x10) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x10)" (* "*") (cast_expression "(char *)(lVar8 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x10)" (( "(") (binary_expression "lVar8 + 0x10" (identifier "lVar8") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;\nLAB_00156154:\n        fwrite(" WRITE",1,6,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;\nLAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);\n      }" ({ "{") (if_statement "if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;" (if "if") (parenthesized_expression "(*(char *)(lVar8 + 0x11) == '\0')" (( "(") (binary_expression "*(char *)(lVar8 + 0x11) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x11)" (* "*") (cast_expression "(char *)(lVar8 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x11)" (( "(") (binary_expression "lVar8 + 0x11" (identifier "lVar8") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0015604a;" (goto "goto") (statement_identifier "LAB_0015604a") (; ";"))) (labeled_statement "LAB_00156154:\n        fwrite(" WRITE",1,6,__stream);" (statement_identifier "LAB_00156154") (: ":") (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 "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" (identifier "lVar8") (= "=") (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" (identifier "DAT_002b5c00") ([ "[") (number_literal "7") (] "]")) (+ "+") (identifier "lVar2"))) (; ";")) (if_statement "if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;" (if "if") (parenthesized_expression "(*(char *)(lVar8 + 0x12) != '\0')" (( "(") (binary_expression "*(char *)(lVar8 + 0x12) != '\0'" (pointer_expression "*(char *)(lVar8 + 0x12)" (* "*") (cast_expression "(char *)(lVar8 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x12)" (( "(") (binary_expression "lVar8 + 0x12" (identifier "lVar8") (+ "+") (number_literal "0x12")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00156188;" (goto "goto") (statement_identifier "LAB_00156188") (; ";"))) (labeled_statement "LAB_00156054:\n        cVar3 = *(char *)(lVar8 + 0x13);" (statement_identifier "LAB_00156054") (: ":") (expression_statement "cVar3 = *(char *)(lVar8 + 0x13);" (assignment_expression "cVar3 = *(char *)(lVar8 + 0x13)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(lVar8 + 0x13)" (* "*") (cast_expression "(char *)(lVar8 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x13)" (( "(") (binary_expression "lVar8 + 0x13" (identifier "lVar8") (+ "+") (number_literal "0x13")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\n      }" (else "else") (compound_statement "{\n        fwrite(" READ",1,5,__stream);\n        lVar8 = DAT_002b5c00[7] + lVar2;\n        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;\nLAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;\nLAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);\n        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);\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 "lVar8 = DAT_002b5c00[7] + lVar2;" (assignment_expression "lVar8 = DAT_002b5c00[7] + lVar2" (identifier "lVar8") (= "=") (binary_expression "DAT_002b5c00[7] + lVar2" (subscript_expression "DAT_002b5c00[7]" (identifier "DAT_002b5c00") ([ "[") (number_literal "7") (] "]")) (+ "+") (identifier "lVar2"))) (; ";")) (if_statement "if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;" (if "if") (parenthesized_expression "(*(char *)(lVar8 + 0x11) != '\0')" (( "(") (binary_expression "*(char *)(lVar8 + 0x11) != '\0'" (pointer_expression "*(char *)(lVar8 + 0x11)" (* "*") (cast_expression "(char *)(lVar8 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x11)" (( "(") (binary_expression "lVar8 + 0x11" (identifier "lVar8") (+ "+") (number_literal "0x11")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00156154;" (goto "goto") (statement_identifier "LAB_00156154") (; ";"))) (labeled_statement "LAB_0015604a:\n        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;" (statement_identifier "LAB_0015604a") (: ":") (if_statement "if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;" (if "if") (parenthesized_expression "(*(char *)(lVar8 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)(lVar8 + 0x12) == '\0'" (pointer_expression "*(char *)(lVar8 + 0x12)" (* "*") (cast_expression "(char *)(lVar8 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x12)" (( "(") (binary_expression "lVar8 + 0x12" (identifier "lVar8") (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00156054;" (goto "goto") (statement_identifier "LAB_00156054") (; ";")))) (labeled_statement "LAB_00156188:\n        fwrite(" EXECUTE",1,8,__stream);" (statement_identifier "LAB_00156188") (: ":") (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 "cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);" (assignment_expression "cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" (* "*") (cast_expression "(char *)(lVar2 + DAT_002b5c00[7] + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + DAT_002b5c00[7] + 0x13)" (( "(") (binary_expression "lVar2 + DAT_002b5c00[7] + 0x13" (binary_expression "lVar2 + DAT_002b5c00[7]" (identifier "lVar2") (+ "+") (subscript_expression "DAT_002b5c00[7]" (identifier "DAT_002b5c00") ([ "[") (number_literal "7") (] "]"))) (+ "+") (number_literal "0x13")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" SHARED",1,7,__stream);\n      }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (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 "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (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 "((int)lVar10 < (int)DAT_002b5c00[6])" (( "(") (binary_expression "(int)lVar10 < (int)DAT_002b5c00[6]" (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10")) (< "<") (cast_expression "(int)DAT_002b5c00[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[6]" (identifier "DAT_002b5c00") ([ "[") (number_literal "6") (] "]")))) () ")")) (; ";")) (} "}"))) (if_statement "if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }" (if "if") (parenthesized_expression "((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8]))" (( "(") (binary_expression "(0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])" (parenthesized_expression "(0 < (int)DAT_002b5c00[8])" (( "(") (binary_expression "0 < (int)DAT_002b5c00[8]" (number_literal "0") (< "<") (cast_expression "(int)DAT_002b5c00[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[8]" (identifier "DAT_002b5c00") ([ "[") (number_literal "8") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])" (( "(") (comma_expression "fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8]" (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 < (int)DAT_002b5c00[8]" (number_literal "0") (< "<") (cast_expression "(int)DAT_002b5c00[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[8]" (identifier "DAT_002b5c00") ([ "[") (number_literal "8") (] "]"))))) () ")"))) () ")")) (compound_statement "{\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);\n  }" ({ "{") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[8]);" (do "do") (compound_statement "{\n      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      FUN_001543c0(*puVar1,__stream,0);\n      if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }\n      if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }\n      if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" ({ "{") (expression_statement "puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);" (assignment_expression "puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5c00[9] + lVar10 * 0x28)" (( "(") (binary_expression "DAT_002b5c00[9] + lVar10 * 0x28" (subscript_expression "DAT_002b5c00[9]" (identifier "DAT_002b5c00") ([ "[") (number_literal "9") (] "]")) (+ "+") (binary_expression "lVar10 * 0x28" (identifier "lVar10") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" (identifier "fwrite") (argument_list "(&DAT_0016c102,1,4,__stream)" (( "(") (pointer_expression "&DAT_0016c102" (& "&") (identifier "DAT_0016c102")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_001543c0(*puVar1,__stream,0);" (call_expression "FUN_001543c0(*puVar1,__stream,0)" (identifier "FUN_001543c0") (argument_list "(*puVar1,__stream,0)" (( "(") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }" (if "if") (parenthesized_expression "(((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0))" (( "(") (binary_expression "((char *)puVar1[1] != (char *)0x0) &&\n         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)" (parenthesized_expression "((char *)puVar1[1] != (char *)0x0)" (( "(") (binary_expression "(char *)puVar1[1] != (char *)0x0" (cast_expression "(char *)puVar1[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1)" (identifier "iVar5") (= "=") (call_expression "strcmp((char *)puVar1[1],(char *)*puVar1)" (identifier "strcmp") (argument_list "((char *)puVar1[1],(char *)*puVar1)" (( "(") (cast_expression "(char *)puVar1[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (, ",") (cast_expression "(char *)*puVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n        FUN_001543c0(puVar1[1],__stream,0);\n      }" ({ "{") (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" (identifier "fwrite") (argument_list "(&DAT_0015d0cd,1,3,__stream)" (( "(") (pointer_expression "&DAT_0015d0cd" (& "&") (identifier "DAT_0015d0cd")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_001543c0(puVar1[1],__stream,0);" (call_expression "FUN_001543c0(puVar1[1],__stream,0)" (identifier "FUN_001543c0") (argument_list "(puVar1[1],__stream,0)" (( "(") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar1 + 3) != -1) {\n        fprintf(__stream," @%d");\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar1 + 3) != -1)" (( "(") (binary_expression "*(int *)(puVar1 + 3) != -1" (pointer_expression "*(int *)(puVar1 + 3)" (* "*") (cast_expression "(int *)(puVar1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 3)" (( "(") (binary_expression "puVar1 + 3" (identifier "puVar1") (+ "+") (number_literal "3")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        fprintf(__stream," @%d");\n      }" ({ "{") (expression_statement "fprintf(__stream," @%d");" (call_expression "fprintf(__stream," @%d")" (identifier "fprintf") (argument_list "(__stream," @%d")" (( "(") (identifier "__stream") (, ",") (string_literal "" @%d"" (" """) (string_content " @%d") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(puVar1 + 4) == '\0') {\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }\n      else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" (if "if") (parenthesized_expression "(*(char *)(puVar1 + 4) == '\0')" (( "(") (binary_expression "*(char *)(puVar1 + 4) == '\0'" (pointer_expression "*(char *)(puVar1 + 4)" (* "*") (cast_expression "(char *)(puVar1 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;\nLAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);\n        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;\nLAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" ({ "{") (if_statement "if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;" (if "if") (parenthesized_expression "(*(char *)((long)puVar1 + 0x21) == '\0')" (( "(") (binary_expression "*(char *)((long)puVar1 + 0x21) == '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x21)" (* "*") (cast_expression "(char *)((long)puVar1 + 0x21)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0x21)" (( "(") (binary_expression "(long)puVar1 + 0x21" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0x21")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0015636a;" (goto "goto") (statement_identifier "LAB_0015636a") (; ";"))) (labeled_statement "LAB_00156430:\n        fwrite(" CONSTANT",1,9,__stream);" (statement_identifier "LAB_00156430") (: ":") (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 *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;" (if "if") (parenthesized_expression "(*(char *)((long)puVar1 + 0x22) != '\0')" (( "(") (binary_expression "*(char *)((long)puVar1 + 0x22) != '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x22)" (* "*") (cast_expression "(char *)((long)puVar1 + 0x22)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0x22)" (( "(") (binary_expression "(long)puVar1 + 0x22" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0x22")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00156453;" (goto "goto") (statement_identifier "LAB_00156453") (; ";"))) (labeled_statement "LAB_00156374:\n        cVar3 = *(char *)((long)puVar1 + 0x23);" (statement_identifier "LAB_00156374") (: ":") (expression_statement "cVar3 = *(char *)((long)puVar1 + 0x23);" (assignment_expression "cVar3 = *(char *)((long)puVar1 + 0x23)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((long)puVar1 + 0x23)" (* "*") (cast_expression "(char *)((long)puVar1 + 0x23)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0x23)" (( "(") (binary_expression "(long)puVar1 + 0x23" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0x23")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\n      }" (else "else") (compound_statement "{\n        fwrite(" PRIVATE",1,8,__stream);\n        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;\nLAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;\nLAB_00156453:\n        fwrite(" NONAME",1,7,__stream);\n        cVar3 = *(char *)((long)puVar1 + 0x23);\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 *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;" (if "if") (parenthesized_expression "(*(char *)((long)puVar1 + 0x21) != '\0')" (( "(") (binary_expression "*(char *)((long)puVar1 + 0x21) != '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x21)" (* "*") (cast_expression "(char *)((long)puVar1 + 0x21)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0x21)" (( "(") (binary_expression "(long)puVar1 + 0x21" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0x21")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00156430;" (goto "goto") (statement_identifier "LAB_00156430") (; ";"))) (labeled_statement "LAB_0015636a:\n        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;" (statement_identifier "LAB_0015636a") (: ":") (if_statement "if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;" (if "if") (parenthesized_expression "(*(char *)((long)puVar1 + 0x22) == '\0')" (( "(") (binary_expression "*(char *)((long)puVar1 + 0x22) == '\0'" (pointer_expression "*(char *)((long)puVar1 + 0x22)" (* "*") (cast_expression "(char *)((long)puVar1 + 0x22)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0x22)" (( "(") (binary_expression "(long)puVar1 + 0x22" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0x22")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00156374;" (goto "goto") (statement_identifier "LAB_00156374") (; ";")))) (labeled_statement "LAB_00156453:\n        fwrite(" NONAME",1,7,__stream);" (statement_identifier "LAB_00156453") (: ":") (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 "cVar3 = *(char *)((long)puVar1 + 0x23);" (assignment_expression "cVar3 = *(char *)((long)puVar1 + 0x23)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((long)puVar1 + 0x23)" (* "*") (cast_expression "(char *)((long)puVar1 + 0x23)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0x23)" (( "(") (binary_expression "(long)puVar1 + 0x23" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0x23")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (cVar3 != '\0') {\n        fwrite(" DATA",1,5,__stream);\n      }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (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 "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (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 "((int)lVar10 < (int)DAT_002b5c00[8])" (( "(") (binary_expression "(int)lVar10 < (int)DAT_002b5c00[8]" (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10")) (< "<") (cast_expression "(int)DAT_002b5c00[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[8]" (identifier "DAT_002b5c00") ([ "[") (number_literal "8") (] "]")))) () ")")) (; ";")) (} "}"))) (if_statement "if ((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }" (if "if") (parenthesized_expression "((0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb]))" (( "(") (binary_expression "(0 < (int)DAT_002b5c00[0xb]) &&\n     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])" (parenthesized_expression "(0 < (int)DAT_002b5c00[0xb])" (( "(") (binary_expression "0 < (int)DAT_002b5c00[0xb]" (number_literal "0") (< "<") (cast_expression "(int)DAT_002b5c00[0xb]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[0xb]" (identifier "DAT_002b5c00") ([ "[") (number_literal "0xb") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])" (( "(") (comma_expression "fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb]" (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 < (int)DAT_002b5c00[0xb]" (number_literal "0") (< "<") (cast_expression "(int)DAT_002b5c00[0xb]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[0xb]" (identifier "DAT_002b5c00") ([ "[") (number_literal "0xb") (] "]"))))) () ")"))) () ")")) (compound_statement "{\n    lVar10 = 0;\n    do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);\n  }" ({ "{") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);" (do "do") (compound_statement "{\n      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);\n      fwrite(&DAT_0016c102,1,4,__stream);\n      pcVar7 = (char *)*puVar1;\n      if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }\n      FUN_001543c0(puVar1[1] + 0x10,__stream,0);\n      fputc(0x2e,__stream);\n      if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }\n      if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }\n      lVar10 = lVar10 + 1;\n      fputc(10,__stream);\n    }" ({ "{") (expression_statement "puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);" (assignment_expression "puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5c00[0xc] + lVar10 * 0x28)" (( "(") (binary_expression "DAT_002b5c00[0xc] + lVar10 * 0x28" (subscript_expression "DAT_002b5c00[0xc]" (identifier "DAT_002b5c00") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (binary_expression "lVar10 * 0x28" (identifier "lVar10") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (expression_statement "fwrite(&DAT_0016c102,1,4,__stream);" (call_expression "fwrite(&DAT_0016c102,1,4,__stream)" (identifier "fwrite") (argument_list "(&DAT_0016c102,1,4,__stream)" (( "(") (pointer_expression "&DAT_0016c102" (& "&") (identifier "DAT_0016c102")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*puVar1;" (assignment_expression "pcVar7 = (char *)*puVar1" (identifier "pcVar7") (= "=") (cast_expression "(char *)*puVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (if_statement "if ((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" (if "if") (parenthesized_expression "((pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0))))" (( "(") (binary_expression "(pcVar7 != (char *)0x0) &&\n         (((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))" (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))" (( "(") (parenthesized_expression "((char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0))" (( "(") (binary_expression "(char *)puVar1[2] == (char *)0x0 ||\n          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)" (binary_expression "(char *)puVar1[2] == (char *)0x0" (cast_expression "(char *)puVar1[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]"))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)" (( "(") (comma_expression "iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pcVar7,(char *)puVar1[2])" (identifier "iVar5") (= "=") (call_expression "strcmp(pcVar7,(char *)puVar1[2])" (identifier "strcmp") (argument_list "(pcVar7,(char *)puVar1[2])" (( "(") (identifier "pcVar7") (, ",") (cast_expression "(char *)puVar1[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]"))) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        FUN_001543c0(pcVar7,__stream,0);\n        fwrite(&DAT_0015d0cd,1,3,__stream);\n      }" ({ "{") (expression_statement "FUN_001543c0(pcVar7,__stream,0);" (call_expression "FUN_001543c0(pcVar7,__stream,0)" (identifier "FUN_001543c0") (argument_list "(pcVar7,__stream,0)" (( "(") (identifier "pcVar7") (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "fwrite(&DAT_0015d0cd,1,3,__stream);" (call_expression "fwrite(&DAT_0015d0cd,1,3,__stream)" (identifier "fwrite") (argument_list "(&DAT_0015d0cd,1,3,__stream)" (( "(") (pointer_expression "&DAT_0015d0cd" (& "&") (identifier "DAT_0015d0cd")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001543c0(puVar1[1] + 0x10,__stream,0);" (call_expression "FUN_001543c0(puVar1[1] + 0x10,__stream,0)" (identifier "FUN_001543c0") (argument_list "(puVar1[1] + 0x10,__stream,0)" (( "(") (binary_expression "puVar1[1] + 0x10" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x10")) (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "fputc(0x2e,__stream);" (call_expression "fputc(0x2e,__stream)" (identifier "fputc") (argument_list "(0x2e,__stream)" (( "(") (number_literal "0x2e") (, ",") (identifier "__stream") () ")"))) (; ";")) (if_statement "if (puVar1[2] == 0) {\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }\n      else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" (if "if") (parenthesized_expression "(puVar1[2] == 0)" (( "(") (binary_expression "puVar1[2] == 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));\n      }" ({ "{") (expression_statement "fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));" (call_expression "fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4))" (identifier "fprintf") (argument_list "(__stream,"%d",(ulong)*(uint *)(puVar1 + 4))" (( "(") (identifier "__stream") (, ",") (string_literal ""%d"" (" """) (string_content "%d") (" """)) (, ",") (binary_expression "(ulong)*(uint *)(puVar1 + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(puVar1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" (else "else") (compound_statement "{\n        FUN_001543c0(puVar1[2],__stream,0);\n      }" ({ "{") (expression_statement "FUN_001543c0(puVar1[2],__stream,0);" (call_expression "FUN_001543c0(puVar1[2],__stream,0)" (identifier "FUN_001543c0") (argument_list "(puVar1[2],__stream,0)" (( "(") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (if_statement "if (puVar1[3] != 0) {\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }" (if "if") (parenthesized_expression "(puVar1[3] != 0)" (( "(") (binary_expression "puVar1[3] != 0" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        fwrite(&DAT_0029f2fc,1,4,__stream);\n        FUN_001543c0(puVar1[3],__stream,0);\n      }" ({ "{") (expression_statement "fwrite(&DAT_0029f2fc,1,4,__stream);" (call_expression "fwrite(&DAT_0029f2fc,1,4,__stream)" (identifier "fwrite") (argument_list "(&DAT_0029f2fc,1,4,__stream)" (( "(") (pointer_expression "&DAT_0029f2fc" (& "&") (identifier "DAT_0029f2fc")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_001543c0(puVar1[3],__stream,0);" (call_expression "FUN_001543c0(puVar1[3],__stream,0)" (identifier "FUN_001543c0") (argument_list "(puVar1[3],__stream,0)" (( "(") (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "__stream") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (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 "((int)lVar10 < (int)DAT_002b5c00[0xb])" (( "(") (binary_expression "(int)lVar10 < (int)DAT_002b5c00[0xb]" (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10")) (< "<") (cast_expression "(int)DAT_002b5c00[0xb]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_002b5c00[0xb]" (identifier "DAT_002b5c00") ([ "[") (number_literal "0xb") (] "]")))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00155f42:\n  iVar5 = fclose(__stream);" (statement_identifier "LAB_00155f42") (: ":") (expression_statement "iVar5 = fclose(__stream);" (assignment_expression "iVar5 = fclose(__stream)" (identifier "iVar5") (= "=") (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (; ";"))) (if_statement "if (iVar5 != -1) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar5 != -1)" (( "(") (binary_expression "iVar5 != -1" (identifier "iVar5") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5)" (identifier "uVar6") (= "=") (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_00129380(uVar6,param_1);" (call_expression "FUN_00129380(uVar6,param_1)" (identifier "FUN_00129380") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *pe_out_def_filename)

{
  type_1 *pdVar1;
  type_2 *pdVar2;
  char var_14;
  type_3 var_11;
  int var_12;
  type_4 *var_2;
  type_5 *pdVar6;
  char *var_16;
  type_3 var_10;
  long var_13;
  
  var_2 = var_1(pe_out_def_filename,"w");
  if (var_2 == (type_4 *)0x0) {
    var_16 = (char *)var_3(0,"%P: can\'t open output def file %s\n",5);
    var_4(var_16,pe_out_def_filename);
  }
  if (var_5 == (type_6 *)0x0) {
    var_16 = (char *)var_3(0,"; no contents available\n",5);
    var_6(var_2,var_16);
    goto LAB_00155f42;
  }
  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_4 *)var_2,1);
    if ((((link_info.output_bfd)->tdata).xcoff_obj_data)->csects != (type_7 **)0x0) {
      var_7(" BASE=0x",1,8,var_2);
      var_6(var_2,"%016lx",(((link_info.output_bfd)->tdata).xcoff_obj_data)->csects);
    }
    var_9(10,var_2);
  }
  if (var_5->description != (char *)0x0) {
    var_7("DESCRIPTION ",1,0xc,var_2);
    var_8(var_5->description,(type_4 *)var_2,1);
    var_9(10,var_2);
  }
  if (var_5->version_minor == -1) {
    if (var_5->version_major != -1) {
      var_6(var_2,"VERSION %d\n");
    }
  }
  else {
    var_6(var_2,"VERSION %d.%d\n");
  }
  if ((var_5->stack_reserve == -1) && (var_5->heap_reserve == -1)) {
    var_10 = var_5->stack_commit;
    var_11 = 0xffffffff;
    if (var_10 == 0xffffffff) {
      if (var_5->heap_commit == -1) goto LAB_00155f1f;
      var_10 = 0xffffffff;
    }
    else {
LAB_00155fa8:
      var_6(var_2,"STACKSIZE 0x%x,0x%x\n",(type_8)var_11,(type_8)var_10);
      var_10 = var_5->heap_reserve;
      if (var_5->heap_commit == -1) goto LAB_00155fd1;
    }
LAB_00155f05:
    var_6(var_2,"HEAPSIZE 0x%x,0x%x\n",(type_8)var_10);
LAB_00155f1f:
    var_12 = var_5->num_section_defs;
  }
  else {
    var_9(10,var_2);
    var_10 = var_5->stack_commit;
    var_11 = var_5->stack_reserve;
    if (var_10 != 0xffffffff) goto LAB_00155fa8;
    if (var_11 != 0xffffffff) {
      var_6(var_2,"STACKSIZE 0x%x\n");
    }
    var_10 = var_5->heap_reserve;
    if (var_5->heap_commit != -1) goto LAB_00155f05;
LAB_00155fd1:
    if (var_10 == 0xffffffff) goto LAB_00155f1f;
    var_6(var_2,"HEAPSIZE 0x%x\n",(type_8)var_10);
    var_12 = var_5->num_section_defs;
  }
  if ((0 < var_12) && (var_7("\nSECTIONS\n\n",1,0xb,var_2), 0 < var_5->num_section_defs)) {
    var_13 = 0;
    do {
      var_7(&DAT_0016c102,1,4,var_2);
      var_8(var_5->section_defs[var_13].name,(type_4 *)var_2,0);
      pdVar6 = var_5->section_defs + var_13;
      if (pdVar6->class != (char *)0x0) {
        var_7(" CLASS ",1,7,var_2);
        var_8(var_5->section_defs[var_13].class,(type_4 *)var_2,0);
        pdVar6 = var_5->section_defs + var_13;
      }
      if (pdVar6->flag_read == '\0') {
        if (pdVar6->flag_write == '\0') goto LAB_0015604a;
LAB_00156154:
        var_7(" WRITE",1,6,var_2);
        pdVar6 = var_5->section_defs + var_13;
        if (pdVar6->flag_execute != '\0') goto LAB_00156188;
LAB_00156054:
        var_14 = pdVar6->flag_shared;
      }
      else {
        var_7(" READ",1,5,var_2);
        pdVar6 = var_5->section_defs + var_13;
        if (pdVar6->flag_write != '\0') goto LAB_00156154;
LAB_0015604a:
        if (pdVar6->flag_execute == '\0') goto LAB_00156054;
LAB_00156188:
        var_7(" EXECUTE",1,8,var_2);
        var_14 = var_5->section_defs[var_13].flag_shared;
      }
      if (var_14 != '\0') {
        var_7(" SHARED",1,7,var_2);
      }
      var_13 = var_13 + 1;
      var_9(10,var_2);
    } while ((int)var_13 < 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_13 = 0;
    do {
      pdVar2 = var_5->exports + var_13;
      var_7(&DAT_0016c102,1,4,var_2);
      var_8(pdVar2->name,(type_4 *)var_2,0);
      if ((pdVar2->internal_name != (char *)0x0) &&
         (var_12 = var_15(pdVar2->internal_name,pdVar2->name), var_12 != 0)) {
        var_7(&DAT_0015d0cd,1,3,var_2);
        var_8(pdVar2->internal_name,(type_4 *)var_2,0);
      }
      if (pdVar2->ordinal != -1) {
        var_6(var_2," @%d");
      }
      if (pdVar2->flag_private == '\0') {
        if (pdVar2->flag_constant == '\0') goto LAB_0015636a;
LAB_00156430:
        var_7(" CONSTANT",1,9,var_2);
        if (pdVar2->flag_noname != '\0') goto LAB_00156453;
LAB_00156374:
        var_14 = pdVar2->flag_data;
      }
      else {
        var_7(" PRIVATE",1,8,var_2);
        if (pdVar2->flag_constant != '\0') goto LAB_00156430;
LAB_0015636a:
        if (pdVar2->flag_noname == '\0') goto LAB_00156374;
LAB_00156453:
        var_7(" NONAME",1,7,var_2);
        var_14 = pdVar2->flag_data;
      }
      if (var_14 != '\0') {
        var_7(" DATA",1,5,var_2);
      }
      var_13 = var_13 + 1;
      var_9(10,var_2);
    } while ((int)var_13 < 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_13 = 0;
    do {
      pdVar1 = var_5->imports + var_13;
      var_7(&DAT_0016c102,1,4,var_2);
      var_16 = pdVar1->internal_name;
      if ((var_16 != (char *)0x0) &&
         ((pdVar1->name == (char *)0x0 || (var_12 = var_15(var_16,pdVar1->name), var_12 != 0)))) {
        var_8(var_16,(type_4 *)var_2,0);
        var_7(&DAT_0015d0cd,1,3,var_2);
      }
      var_8(pdVar1->module->name,(type_4 *)var_2,0);
      var_9(0x2e,var_2);
      if (pdVar1->name == (char *)0x0) {
        var_6(var_2,"%d",(type_8)(type_3)pdVar1->ordinal);
      }
      else {
        var_8(pdVar1->name,(type_4 *)var_2,0);
      }
      if (pdVar1->its_name != (char *)0x0) {
        var_7(&DAT_0029f2fc,1,4,var_2);
        var_8(pdVar1->its_name,(type_4 *)var_2,0);
      }
      var_13 = var_13 + 1;
      var_9(10,var_2);
    } while ((int)var_13 < var_5->num_imports);
  }
LAB_00155f42:
  var_12 = var_17(var_2);
  if (var_12 != -1) {
    return;
  }
  var_16 = (char *)var_3(0,"%P: error closing file `%s\'\n",5);
  var_4(var_16,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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (sized_type_specifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) 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: (sized_type_specifier) 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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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) (escape_sequence)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) (identifier) (number_literal)))) (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: (sized_type_specifier) 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 (string_literal (string_content)) (number_literal) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier))))) (identifier) (number_literal)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) consequence: (compound_statement (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 (pointer_expression argument: (identifier)) (number_literal) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (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: (sized_type_specifier)) 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: (sized_type_specifier)) 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: (sized_type_specifier)) 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: (sized_type_specifier)) 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: (sized_type_specifier)) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) consequence: (compound_statement (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 (pointer_expression argument: (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) (number_literal)))) (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (identifier) (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 (identifier) (string_literal (string_content)) (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (number_literal)))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))

void MASKED(char *param_1)

{
  undefined8 *puVar1;
  long lVar2;
  char cVar3;
  uint uVar4;
  int iVar5;
  FILE *__stream;
  undefined8 uVar6;
  char *pcVar7;
  long lVar8;
  uint uVar9;
  long lVar10;
  
  __stream = fopen(param_1,"w");
  if (__stream == (FILE *)0x0) {
    uVar6 = dcgettext(0,"%P: can\'t open output def file %s\n",5);
    FUN_00129380(uVar6,param_1);
  }
  if (DAT_002b5c00 == (long *)0x0) {
    pcVar7 = (char *)dcgettext(0,"; no contents available\n",5);
    fprintf(__stream,pcVar7);
    goto LAB_00155f42;
  }
  if (*DAT_002b5c00 != 0) {
    if ((int)DAT_002b5c00[1] == 0) {
      fwrite("NAME ",1,5,__stream);
    }
    else {
      fwrite("LIBRARY ",1,8,__stream);
    }
    FUN_001543c0(*DAT_002b5c00,__stream,1);
    if (*(long *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100) != 0) {
      fwrite(" BASE=0x",1,8,__stream);
      fprintf(__stream,"%016lx",*(undefined8 *)(*(long *)(DAT_002b5f90 + 0xf8) + 0x100));
    }
    fputc(10,__stream);
  }
  if (DAT_002b5c00[3] != 0) {
    fwrite("DESCRIPTION ",1,0xc,__stream);
    FUN_001543c0(DAT_002b5c00[3],__stream,1);
    fputc(10,__stream);
  }
  if (*(int *)((long)DAT_002b5c00 + 0x6c) == -1) {
    if ((int)DAT_002b5c00[0xd] != -1) {
      fprintf(__stream,"VERSION %d\n");
    }
  }
  else {
    fprintf(__stream,"VERSION %d.%d\n");
  }
  if (((int)DAT_002b5c00[4] == -1) && ((int)DAT_002b5c00[5] == -1)) {
    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);
    uVar4 = 0xffffffff;
    if (uVar9 == 0xffffffff) {
      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155f1f;
      uVar9 = 0xffffffff;
    }
    else {
LAB_00155fa8:
      fprintf(__stream,"STACKSIZE 0x%x,0x%x\n",(ulong)uVar4,(ulong)uVar9);
      uVar9 = *(uint *)(DAT_002b5c00 + 5);
      if (*(int *)((long)DAT_002b5c00 + 0x2c) == -1) goto LAB_00155fd1;
    }
LAB_00155f05:
    fprintf(__stream,"HEAPSIZE 0x%x,0x%x\n",(ulong)uVar9);
LAB_00155f1f:
    iVar5 = (int)DAT_002b5c00[6];
  }
  else {
    fputc(10,__stream);
    uVar9 = *(uint *)((long)DAT_002b5c00 + 0x24);
    uVar4 = *(uint *)(DAT_002b5c00 + 4);
    if (uVar9 != 0xffffffff) goto LAB_00155fa8;
    if (uVar4 != 0xffffffff) {
      fprintf(__stream,"STACKSIZE 0x%x\n");
    }
    uVar9 = *(uint *)(DAT_002b5c00 + 5);
    if (*(int *)((long)DAT_002b5c00 + 0x2c) != -1) goto LAB_00155f05;
LAB_00155fd1:
    if (uVar9 == 0xffffffff) goto LAB_00155f1f;
    fprintf(__stream,"HEAPSIZE 0x%x\n",(ulong)uVar9);
    iVar5 = (int)DAT_002b5c00[6];
  }
  if ((0 < iVar5) && (fwrite("\nSECTIONS\n\n",1,0xb,__stream), 0 < (int)DAT_002b5c00[6])) {
    lVar10 = 0;
    do {
      fwrite(&DAT_0016c102,1,4,__stream);
      lVar2 = lVar10 * 0x18;
      FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + lVar10 * 0x18),__stream,0);
      lVar8 = DAT_002b5c00[7] + lVar2;
      if (*(long *)(lVar8 + 8) != 0) {
        fwrite(" CLASS ",1,7,__stream);
        FUN_001543c0(*(undefined8 *)(DAT_002b5c00[7] + 8 + lVar2),__stream,0);
        lVar8 = DAT_002b5c00[7] + lVar2;
      }
      if (*(char *)(lVar8 + 0x10) == '\0') {
        if (*(char *)(lVar8 + 0x11) == '\0') goto LAB_0015604a;
LAB_00156154:
        fwrite(" WRITE",1,6,__stream);
        lVar8 = DAT_002b5c00[7] + lVar2;
        if (*(char *)(lVar8 + 0x12) != '\0') goto LAB_00156188;
LAB_00156054:
        cVar3 = *(char *)(lVar8 + 0x13);
      }
      else {
        fwrite(" READ",1,5,__stream);
        lVar8 = DAT_002b5c00[7] + lVar2;
        if (*(char *)(lVar8 + 0x11) != '\0') goto LAB_00156154;
LAB_0015604a:
        if (*(char *)(lVar8 + 0x12) == '\0') goto LAB_00156054;
LAB_00156188:
        fwrite(" EXECUTE",1,8,__stream);
        cVar3 = *(char *)(lVar2 + DAT_002b5c00[7] + 0x13);
      }
      if (cVar3 != '\0') {
        fwrite(" SHARED",1,7,__stream);
      }
      lVar10 = lVar10 + 1;
      fputc(10,__stream);
    } while ((int)lVar10 < (int)DAT_002b5c00[6]);
  }
  if ((0 < (int)DAT_002b5c00[8]) && (fwrite("EXPORTS\n",1,8,__stream), 0 < (int)DAT_002b5c00[8])) {
    lVar10 = 0;
    do {
      puVar1 = (undefined8 *)(DAT_002b5c00[9] + lVar10 * 0x28);
      fwrite(&DAT_0016c102,1,4,__stream);
      FUN_001543c0(*puVar1,__stream,0);
      if (((char *)puVar1[1] != (char *)0x0) &&
         (iVar5 = strcmp((char *)puVar1[1],(char *)*puVar1), iVar5 != 0)) {
        fwrite(&DAT_0015d0cd,1,3,__stream);
        FUN_001543c0(puVar1[1],__stream,0);
      }
      if (*(int *)(puVar1 + 3) != -1) {
        fprintf(__stream," @%d");
      }
      if (*(char *)(puVar1 + 4) == '\0') {
        if (*(char *)((long)puVar1 + 0x21) == '\0') goto LAB_0015636a;
LAB_00156430:
        fwrite(" CONSTANT",1,9,__stream);
        if (*(char *)((long)puVar1 + 0x22) != '\0') goto LAB_00156453;
LAB_00156374:
        cVar3 = *(char *)((long)puVar1 + 0x23);
      }
      else {
        fwrite(" PRIVATE",1,8,__stream);
        if (*(char *)((long)puVar1 + 0x21) != '\0') goto LAB_00156430;
LAB_0015636a:
        if (*(char *)((long)puVar1 + 0x22) == '\0') goto LAB_00156374;
LAB_00156453:
        fwrite(" NONAME",1,7,__stream);
        cVar3 = *(char *)((long)puVar1 + 0x23);
      }
      if (cVar3 != '\0') {
        fwrite(" DATA",1,5,__stream);
      }
      lVar10 = lVar10 + 1;
      fputc(10,__stream);
    } while ((int)lVar10 < (int)DAT_002b5c00[8]);
  }
  if ((0 < (int)DAT_002b5c00[0xb]) &&
     (fwrite("\nIMPORTS\n\n",1,10,__stream), 0 < (int)DAT_002b5c00[0xb])) {
    lVar10 = 0;
    do {
      puVar1 = (undefined8 *)(DAT_002b5c00[0xc] + lVar10 * 0x28);
      fwrite(&DAT_0016c102,1,4,__stream);
      pcVar7 = (char *)*puVar1;
      if ((pcVar7 != (char *)0x0) &&
         (((char *)puVar1[2] == (char *)0x0 ||
          (iVar5 = strcmp(pcVar7,(char *)puVar1[2]), iVar5 != 0)))) {
        FUN_001543c0(pcVar7,__stream,0);
        fwrite(&DAT_0015d0cd,1,3,__stream);
      }
      FUN_001543c0(puVar1[1] + 0x10,__stream,0);
      fputc(0x2e,__stream);
      if (puVar1[2] == 0) {
        fprintf(__stream,"%d",(ulong)*(uint *)(puVar1 + 4));
      }
      else {
        FUN_001543c0(puVar1[2],__stream,0);
      }
      if (puVar1[3] != 0) {
        fwrite(&DAT_0029f2fc,1,4,__stream);
        FUN_001543c0(puVar1[3],__stream,0);
      }
      lVar10 = lVar10 + 1;
      fputc(10,__stream);
    } while ((int)lVar10 < (int)DAT_002b5c00[0xb]);
  }
LAB_00155f42:
  iVar5 = fclose(__stream);
  if (iVar5 != -1) {
    return;
  }
  uVar6 = dcgettext(0,"%P: error closing file `%s\'\n",5);
  FUN_00129380(uVar6,param_1);
  return;
}

